anchor.diff:  
   %% @doc The following function is called by the static versions of read and update_objects
   %%      to execute a static transaction.
  --spec start_static_transaction(update_objects | read_objects, list(), boolean(), vectorclock()) -> {ok, vectorclock()} | {error, reason()}.
  +-spec start_static_transaction(update_objects | read_objects, list(), boolean(), vectorclock()) -> {ok, snapshot_time()} | {error, reason()}.
   start_static_transaction(TransactionKind, ListOfOperations, StayAlive, ClientCausalVC) ->
               TxPid = case StayAlive of
                   true ->
  
positive.code:                  end
      end.
  
  -spec update_objects([{bound_object(), op_name(), op_param()}], txid())
                      -> ok | {error, reason()}.
  update_objects(Updates, TxId) ->
      {_, _, CoordFsmPid} = TxId,
  
negative.code: %% some systests that call updates with
  %% {Operation, Params} (as a single parameter),
  %% and Operation, Params (two separate parameters).
  -spec check_and_format_ops([{bound_object(), op_name(), op_param()} | {bound_object(), {op_name(),op_param()}}]) ->
                                  [{{key(), bucket()}, type(), {op_name(), op_param()}}] | {error, reason()}.
  check_and_format_ops(Updates) ->
      try
          lists:map(fun(Update) ->
              {Key, Type, Bucket, Op} = case Update of
                  {{K, T, B}, {O, P}} ->
                      {K, T, B, {O, P}};
                  {{K, T, B}, O, P} ->
                      {K, T, B, {O, P}}
              end,
  