anchor.diff:  
   -define(BLOCKING, fun() -> {noreply, State} end).
   
  +%% Clock mutation macros.
  +-define(CLOCK_INIT, fun(Metadata) ->
  +            VClock = vclock:increment(Actor, vclock:fresh()),
  +            orddict:store(clock, VClock, Metadata)
  +    end).
  +
  +-define(CLOCK_MERG, fun(Metadata) ->
  +            vclock:merge([orddict:fetch(clock, Metadata0), orddict:fetch(clock, Metadata)])
  +    end).
  +
   %%%===================================================================
   %%% API
   %%%===================================================================
  
positive.code: handle_call({fold, Id, Function, AccId}, _From, #state{store=Store}=State) ->
      {ok, _Pid} = ?CORE:fold(Id, Function, AccId, Store, ?BIND, ?READ),
      {reply, ok, State};
  handle_call(Msg, _From, State) ->
      lager:warning("Unhandled messages: ~p", [Msg]),
      {reply, ok, State}.
  
negative.code: %%      the value to bind.
  %%
  -spec bind(id(), value()) -> {ok, var()}.
  bind(Id, Value0) ->
      {ok, {Id, Type, Metadata, Value}} = gen_server:call(?MODULE, {bind, Id, Value0}, infinity),
      broadcast({Id, Type, Metadata, Value}),
      {ok, {Id, Type, Metadata, Value}}.
  
  