anchor.diff:  % opaque data, that for example might be an address, as long as it's
   % something that HashMod understands.  The Data is opaque user data
   % that the caller just wants to associate with the Addr.
  -
  -create(AddrDataList) ->
  -    create(AddrDataList, ?MODULE, undefined).
  -
  +%
   % The HashMod module must export a hash_addr(Addr, HashCfg) function
   % which returns a sorted list of Points, where Point is an int.  And,
   % the HashMod module also must export a hash_key(Key, HashCfg)
  
positive.code:     lists:keysort(#cpoint.point, CPoints);
  
  make({HashMod, HashCfg} = Hash, [{Addr, Data} | Rest], Acc) ->
      {ok, Points} = HashMod:hash_addr(Addr, HashCfg),
      {_, Acc2} =
          lists:foldl(
            fun (Point, {N, AccMore}) ->
  
negative.code: 
  % Example hash_key/hash_addr functions.
  
  hash_key(Key, _) -> misc:hash({Key, 1}).
  
  hash_addr(Addr, NumPoints) ->
      hash_addr(Addr, 1, NumPoints, []).
  
  hash_addr(_, _, 0, Acc) -> lists:sort(Acc);
  hash_addr(Addr, Seed, N, Acc) ->
      Point = misc:hash(Addr, Seed),
      hash_addr(Addr, Point, N - 1, [Point | Acc]).
  