anchor.diff:  %% that both registers contain the same value and timestamp.
   -spec equal(mvreg(), mvreg()) -> boolean().
   equal(MVReg1, MVReg2) ->
  -    V1 = value(MVReg1),
  -    TS1 = value(timestamp, MVReg1),
  -    V2 = value(MVReg2),
  -    TS2 = value(timestamp, MVReg2),
  -    if V1 == V2 andalso TS1 == TS2 ->
  -            true;
  +    eq(lists:sort(MVReg1), lists:sort(MVReg2)).
  +
  +eq([], []) ->
  +    true;
  +eq([H1|T1], [H2|T2]) ->
  +    {V1, TS1} = H1,
  +    {V2, TS2} = H2,
  +    VEqual = V1 =:= V2,
  +    TSEqual = riak_dt_vclock:equal(TS1, TS2),
  +    if VEqual andalso TSEqual ->
  +            equal(T1, T2);
           true ->
               false
  -    end.
  -%equal(_, _) ->
  -%    false.
  +    end;
  +eq(_, _) ->
  +    false.
   
   -spec stats(mvreg()) -> [{atom(), number()}].
   stats(MVReg) ->
  
positive.code:     NewVC = riak_dt_vclock:increment(Actor, MaxVC),
      NewVC.
  
  %% @doc If the timestamp is larger than all corresponding entries.
  dominate_ts(_TS, _Actor, []) ->
      true;
  dominate_ts(TS, Actor, [H|T]) ->
      {_Value, VC} = H,
      OldTS = riak_dt_vclock:get_counter(Actor, VC),
      if  TS > OldTS ->
          dominate_ts(TS, Actor, T);
      true ->
          false
      end.
  
negative.code: -define(V1_VERS, 1).
  
  %% @doc Encode an effecient binary representation of an `mvreg()'
  %% Not working yet...
  -spec to_binary(mvreg()) -> binary().
  to_binary(MVReg) ->
      <<?TAG:8/integer, ?V1_VERS:8/integer, (riak_dt:to_binary(MVReg))/binary>>.
  