anchor.diff:  
   %% @private
   convergence() ->
  -    {ok, Convergence} = lasp:query(?CONVERGENCE_ID),
  +    {ok, Convergence} = lasp:read(?CONVERGENCE_ID, undefined),
  +    lager:info("*** read: ~p", [Convergence]),
       Convergence.
   
   %% @private
   bind_convergence({Id, Type, Metadata, Value}) ->
  -    {ok, Value} = ?MODULE:local_bind(Id, Type, Metadata, Value),
  -    {ok, Value}.
  +    {ok, Result} = ?MODULE:local_bind(Id, Type, Metadata, Value),
  +    {ok, Result}.
  
positive.code:                     clock :: lasp_vclock:vclock(),
                      metadata :: metadata(),
                      value :: value(),
                      convergence :: crdt()}).
  
  -define(MEMORY_INTERVAL, 10000).
  -define(DELTA_INTERVAL, 10000).
  
negative.code:             {ok, _} = ?MODULE:local_bind(Id, Type, Metadata, Value),
              bind_convergence(Convergence),
              true
      end;
  merge({_Id, _Clock}, Payload) ->
      lager:error("Incoming merge didn't match payload: ~p", [Payload]),
      false.
  
  %% @doc Use the clock on the object to determine if this message is
  %%      stale or not.
  