anchor.diff:      lists:usort(lists:flatten(AllDiff)).
   
   % @doc Return the number of partitions in this Riak ring.
  -% @spec num_partitions(State :: hstate()) -> integer()
  +% @spec num_partitions(State :: chstate()) -> integer()
   num_partitions(State) ->
  -    chash:size(State#hstate.ring).
  +    chash:size(State#chstate.chring).
   
   % @doc For a given object key, produce the ordered list of
   %      {partition,node} pairs that could be responsible for that object.
  -% @spec preflist(Key :: binary(), State :: hstate()) ->
  +% @spec preflist(Key :: binary(), State :: chstate()) ->
   %                                 [{Index :: integer(), Node :: term()}]
   preflist(Key, State) ->
  -    chash:successors(Key, State#hstate.ring).
  +    chash:successors(Key, State#chstate.chring).
   
   filtered_preflist(Key, State, N) ->
       Preflist = preflist(Key, State),
  
positive.code: 
  % @doc riak_ring manages a riak node's local view of partition
  %      ownership.  The functions in this module revolve around use
  %      of the hstate record, which should be treated as opaque by
  %      other modules.  Riak nodes exchange instances of
  %      these records via gossip in order to converge on a common
  %      view of node/partition ownership.
  
negative.code:     {new_ring, C4} = reconcile(A3,C3),
      {new_ring, A4} = reconcile(C4,A3),
      {new_ring, B3} = reconcile(A4,B2),
      ?assertEqual(A4#chstate.chring, B3#chstate.chring),
      ?assertEqual(B3#chstate.chring, C4#chstate.chring).
  
  param_fresh_test() ->
      application:set_env(riak,ring_creation_size,4),
  