anchor.diff:                    lazy=Lazy,
                     type=Type,
                     next=NextKey,
  -                  functions=Functions0}}] = ets:lookup(Variables, X),
  +                  functions=Functions0}}] = ets:lookup(Variables, Id),
       case Bound of
           true ->
  -            lager:info("Read received: ~p, bound: ~p", [X, V]),
  +            lager:info("Read received: ~p, bound: ~p", [Id, V]),
               case is_lattice(Type) of
                   true ->
                       case Function of
  
positive.code:                             Functions = [Function|Functions0],
                              lager:info("Read depends on function: ~p",
                                         [Functions]),
                              write(Type, Value, NextKey, Functions, X, Variables)
                      end;
                  false ->
                      ok
  
negative.code: 
  write(Type, Value, Next, Functions0, Key, Variables) ->
      lager:info("Writing key: ~p next: ~p", [Key, Next]),
      [{_Key, #dv{waiting_threads=Threads,
                  binding_list=BindingList,
                  lazy=Lazy}}] = ets:lookup(Variables, Key),
      Functions = lists:usort(Functions0),
      V1 = #dv{type=Type, value=Value, functions=Functions, next=Next,
               lazy=Lazy, bound=true},
  