anchor.diff:  %%--------------------------------------------------------------------
   %% @doc Compare local-metadata with remote-metadata
   %% @private
  --spec(compare(pid(), pid(), atom(), #state{}) ->
  +-spec(compare(reference(), pid(), pid(), atom(), #state{}) ->
                ok).
  -compare(Pid, RPCKey, Node, #state{metadata = #?METADATA{addr_id = AddrId,
  -                                                        key     = Key,
  -                                                        clock   = Clock}}) ->
  +compare(Ref, Pid, RPCKey, Node, #state{metadata = #?METADATA{addr_id = AddrId,
  +                                                             key     = Key,
  +                                                             clock   = Clock}}) ->
       Ret = case rpc:nb_yield(RPCKey, ?DEF_REQ_TIMEOUT) of
                 {value, {ok, #?METADATA{clock = RemoteClock}}} when Clock == RemoteClock ->
                     ok;
  
positive.code:              {ok, reference()} | {error, reference(),  any()}).
  repair(#read_parameter{quorum = ReadQuorum,
                         req_id = ReqId}, Redundancies, Metadata, Callback) ->
      From   = self(),
      AddrId = Metadata#?METADATA.addr_id,
      Key    = Metadata#?METADATA.key,
  
negative.code:                   [Node, AddrId, Key, Clock, Reason]),
              enqueue(AddrId, Key)
      end,
      erlang:send(Pid, {Ref, Ret}).
  
  
  %% @doc Insert a message into the queue
  