anchor.diff:  %% @doc Creates an empty {@link zset(any(), any())}
   -spec new() -> zset(any(), any()).
   new() ->
  -  #zset{dict = orddict:new(), tree = gb_trees:empty()}.
  +  #zset{dict = dict:new(), tree = gb_trees:empty()}.
   
   %% @equiv enter(Score, Member, ZSet)
   -spec enter({Score, Member}, zset(Scores, Members)) -> zset(Scores, Members) when is_subtype(Score, Scores), is_subtype(Member, Members).
  
positive.code: -author('Fernando Benavides <fernando.benavides@inakanetworks.com>').
  -author('Chad DePue <chad@inakanetworks.com>').
  
  -record(zset, {dict :: [{_,_}],
                 tree :: gb_tree()}).
  -opaque zset(_Scores, _Members) :: #zset{}.
  
  
negative.code: %%      If the element is already present it justs updates its score
  -spec enter(Score, Member, zset(Scores, Members)) -> zset(Scores, Members) when is_subtype(Score, Scores), is_subtype(Member, Members).
  enter(Score, Member, ZSet = #zset{}) ->
    case dict:find(Member, ZSet#zset.dict) of
      error ->
        ZSet#zset{dict = dict:store(Member, Score, ZSet#zset.dict),
                  tree = gb_trees:enter({Score, Member}, undefined, ZSet#zset.tree)};
      {ok, PrevScore} ->
        ZSet#zset{dict = dict:store(Member, Score, ZSet#zset.dict),
                  tree = gb_trees:enter({Score, Member}, undefined,
                                        gb_trees:delete({PrevScore, Member}, ZSet#zset.tree))}
    end.
  