anchor.diff:  handle_command({async_bind, Id, Value}, _From,
                  State=#state{partition=Partition, table=Table}) ->
       [{_Key,V}] = ets:lookup(Table, Id),
  -    PrevNextKey = V#dv.next,
  -    if
  -        PrevNextKey == undefined ->
  +    NextKey0 = V#dv.next,
  +    if
  +        NextKey0 == undefined ->
               Next = State#state.clock + 1,
               NextKey={Next, Partition},
               declare(NextKey);
           true ->
  -            {Next, _} = PrevNextKey,
  -            NextKey = PrevNextKey
  +            {Next, _} = NextKey0,
  +            NextKey = NextKey0
       end,
       spawn(derflow_vnode, put, [Value, NextKey, Id, Table]),
       {reply, {ok, NextKey}, State#state{clock=Next}};
  
positive.code: handle_command({async_bind, Id, F, Arg}, _From,
                 State=#state{partition=Partition, table=Table}) ->
      [{_Key, V}] = ets:lookup(Table, Id),
      PrevNextKey = V#dv.next,
      if
          PrevNextKey == undefined ->
              Next = State#state.clock + 1,
              NextKey = {Next, Partition},
              declare(NextKey);
          true ->
              {Next, _} = PrevNextKey,
              NextKey = PrevNextKey
          end,
      spawn(derflow_vnode, execute_and_put, [F, Arg, NextKey, Id, Table]),
      {reply, {ok, NextKey}, State#state{clock=Next}};
  
negative.code:     notify_all(BindingList, Value),
      reply_to_all(Threads, {ok, Value, Next}).
  
  next_key(NextKey0, Clock, Partition) ->
      if
          NextKey0 == undefined ->
              NextClock = get_next_key(Clock, Partition),
              NextKey = {NextClock, Partition},
              declare(NextKey);
          true ->
              NextClock = Clock,
              NextKey = NextKey0
      end,
      {NextClock, NextKey}.
  
  