anchor.diff:  
   %% Types
   -type read_fun() :: {atom(), function()}.
  +-type write_fun() :: {atom(), function()}.
   
   %% Records
  --record(state, {read_funs :: [read_fun()], function :: function()}).
  +-record(state, {read_funs :: [read_fun()],
  +                trans_fun :: function(),
  +                write_fun :: write_fun()}).
   
   %%%===================================================================
   %%% API
  
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:                         exit({lasp_process, not_found})
                  end
          end.
  