anchor.diff:  %% Internal functions
   
   write(Type, Value, Next, Key, Variables) ->
  +    write(Type, Value, Next, [], Key, Variables).
  +
  +write(Type, Value, Next, Functions, Key, Variables) ->
       [{_Key,V}] = ets:lookup(Variables, Key),
       Threads = V#dv.waiting_threads,
       BindingList = V#dv.binding_list,
  -    V1 = #dv{type=Type, value=Value, next=Next, lazy=false, bounded=true},
  +    V1 = #dv{type=Type, value=Value, functions=Functions, next=Next, lazy=false, bounded=true},
       true = ets:insert(Variables, {Key, V1}),
       notify_all(BindingList, Value),
       reply_to_all(Threads, {ok, Value, Next}).
  
positive.code:              next = undefined,
               waiting_threads = [],
               binding_list = [],
               creator,
               type,
               lazy = false,
  
negative.code:         _ ->
              false
      end.
  
  %% @doc Return if something is a lattice or not.
  is_lattice(Type) ->
      lists:member(Type, [riak_dt_gcounter, riak_dt_lwwreg, riak_dt_gset]).
  