anchor.diff:              end
       end;
   
  -handle_command({next, X}, _From,
  -               State=#state{variables=Variables}) ->
  -    [{_Key,V}] = ets:lookup(Variables, X),
  -    NextKey0 = V#dv.next,
  +handle_command({next, Id}, _From,
  +               State=#state{variables=Variables}) ->
  +    [{_Key, V=#dv{next=NextKey0}}] = ets:lookup(Variables, Id),
       case NextKey0 of
           undefined ->
               {ok, NextKey} = declare_next(V#dv.type, State),
  -            V1 = V#dv{next=NextKey},
  -            true = ets:insert(Variables, {X, V1}),
  +            true = ets:insert(Variables, {Id, V#dv{next=NextKey}}),
               {reply, {ok, NextKey}, State};
           _ ->
               {reply, {ok, NextKey0}, State}
  
positive.code:                 end
      end;
  
  handle_command({reply_fetch, FromId, FromP, FetchDV}, _From,
                 State=#state{variables=Variables}) ->
      case FetchDV#dv.bounded of
          true ->
              Value = FetchDV#dv.value,
              Next = FetchDV#dv.next,
              Type = FetchDV#dv.type,
              write(Type, Value, Next, FromId, Variables),
              reply_to_all([FromP], {ok, Next});
          false ->
  
negative.code: handle_command({bind, Id, Value}, _From,
                 State=#state{variables=Variables}) ->
      lager:info("Bind received: ~p", [Id]),
      [{_Key, V=#dv{functions=Functions}}] = ets:lookup(Variables, Id),
      NextKey = case Value of
          nil ->
              undefined;
          _ ->
              next_key(V#dv.next, V#dv.type, State)
      end,
      case V#dv.bounded of
          true ->
              case V#dv.value of
  