anchor.diff:  %% API for applications
   -export([
            start_transaction/2,
  -         %start_transaction/1,
  -         read_objects/2, 
  +         read_objects/2,
            read_objects/3,
            update_objects/2,
            update_objects/3,
  
positive.code:                             {ok, snapshot_time()} | {error, reason()}.
  update_objects(Clock, _Properties, Updates) ->
      Actor = actor, %% TODO: generate unique actors
      Operations = lists:map( 
                     fun({{Key, Type, _Bucket}, Op, OpParam}) ->
                             {update, {Key, Type, {{Op,OpParam}, Actor}}}
                     end,
  
negative.code:             {ok, CommitTime};
          {error, Reason} -> {error, Reason}
      end.
  
  read_objects(Clock, _Properties, Objects) ->
      Args = lists:map(
               fun({Key, Type, _Bucket}) ->
                       {read, {Key, Type}}
               end,
               Objects),
      case clocksi_execute_tx(Clock, Args) of
  