anchor.diff:  %%
   %% @end
   %%--------------------------------------------------------------------
  --spec transaction(Fun :: txn_fun(), Retries :: txn_retries(), Opts :: db_flags()) ->
  -    {ok, db_value()} | {error, db_error_reason() | {transaction_failed, term()}}.
  +-spec transaction(Fun :: db_txn_fun(), Retries :: db_txn_retries(), Opts :: db_flags()) ->
  +    {ok, db_value()} | db_txn_error().
   
   transaction(_Fun, 0, _Opts) ->
       ok = txn_abort(),
  
positive.code: %%
  %% @end
  %%--------------------------------------------------------------------
  -spec update(Db :: db(), Key :: db_key(), Fun :: db_update_fun(), Args :: db_update_fun_args(), Opts :: db_flags) ->
      {ok, db_value()} | db_error().
  
  update(Db, Key, Fun, Args, Opts) ->
      F = fun() ->
  
negative.code: %% @end
  %%--------------------------------------------------------------------
  -spec update(Db :: db(), Key :: db_key(), Fun :: db_update_fun()) ->
      {ok, db_value()} | db_txn_error().
  
  update(Db, Key, Fun) ->
      update(Db, Key, Fun, undefined, []).
  