anchor.diff: +%% @doc Hash collision handling for data structures.
  +%%
  +%% Implements utility functions for dealing with the collision of
  +%% hashes in data structures such as Clojure maps and sets.
   -module(clj_hash_collision).
   
   -include("clojerl.hrl").
  
positive.code:     _     -> do_equiv(Rest, MapSet)
    end.
  
  -spec do_equiv_values([entry()], integer(), mappings()) -> boolean().
  do_equiv_values([], _Hash, _MapSet) ->
    true;
  do_equiv_values([{K, V} | Rest], Hash, MapSet) ->
  
negative.code:         , equiv/2
          ]).
  
  -type entry()   :: {any(), any()} | [{any(), any()}].
  -type mapping() :: #{integer() => entry()}.
  
  %% @doc Gets the entry for `Key' in `Map'.
  %%
  %% Returns `undefined' when the entry is not found.
  -spec get_entry(mapping(), integer(), any()) -> ?NIL | {any(), any()}.
  get_entry(Map, Hash, Key) ->
    case Map of
      #{Hash := {Key, V}} -> {Key, V};
  