anchor.diff:                          exit({lasp_process, not_found})
                   end
           end.
  -
  -%% @doc Generate WriteFun.
  -gen_write_fun(Id, WriteFun) ->
  -    fun(Value) ->
  -        WriteFun(Id, Value)
  -    end.
  
positive.code:     {ok, ReadFuns, State}.
  
  %% @doc Computation to execute when inputs change.
  process(Args, #state{function=Function}=State) ->
      case lists:any(fun(X) -> X =:= undefined end, Args) of
          true ->
              ok;
          false ->
              %% @todo change this once state is changed
              case Function of
                  {TransFun, {AccId, WriteFun}} ->
                      BindFun = gen_write_fun(AccId, WriteFun),
                      BindFun(erlang:apply(TransFun, Args));
                  _ -> erlang:apply(Function, Args)
              end
      end,
      {ok, State}.
  
negative.code: 
  %% @doc Initialize state.
  init([ReadFuns, Function]) ->
      {ok, #state{read_funs=ReadFuns,
                  trans_fun=Function,
                  write_fun=undefined}};
  
  init([ReadFuns, TransFun, WriteFun]) ->
      {ok, #state{read_funs=ReadFuns,
                  trans_fun=TransFun,
                  write_fun=WriteFun}}.
  
  %% @doc Return list of read functions.
  read(#state{read_funs=ReadFuns0}=State) ->
  