anchor.diff:           txn_stat/0, txn_stat/1,
            txn_stat_print/0, txn_stat_print/1,
            env_stat_print/0, env_stat_print/1, 
  -         transaction/1, transaction/2, transaction/3,
  +         transaction/1, transaction/2, transaction/3, transaction/4,
            put/3, put/4,
            put_r/3, put_r/4,
            put_commit/3, put_commit/4,
            put_commit_r/3, put_commit_r/4,
            get/2, get/3,
            get_r/2, get_r/3,
  -         update/3, update/4, update/5,
  +         update/3, update/4, update/5, update/6, update/7,
            truncate/0, truncate/1,
            delete_database/1,
            cursor_open/1, cursor_next/0, cursor_prev/0, cursor_current/0, cursor_close/0,
  
positive.code: %%    Fun = function()
  %%    Args = any()
  %%
  %% @equiv update(Db, Key, Fun, undefined, [])
  %% @see update/5
  %% @end
  %%--------------------------------------------------------------------
  -spec update(Db :: db(), Key :: db_key(), Fun :: db_update_fun(), Args :: db_update_fun_args()) ->
  
negative.code: 
  transaction(Fun, Retries) ->
      transaction(Fun, Retries, []).
  
  
  %%--------------------------------------------------------------------
  %% @doc
  %% Execute a fun inside of a transaction.
  %%
  %% @spec transaction(Fun, Retries, Opts) -> {ok, Value} | {error, Error}
  %% where
  %%    Fun = function()
  %%    Retries = infinity | integer()
  %%    Opts = [atom()]
  %% @equiv transaction(Fun, Retries, infinity, Opts)
  %% @see transaction/4
  %% @end
  %%--------------------------------------------------------------------
  -spec transaction(Fun :: db_txn_fun(), Retries :: db_txn_retries(), Opts :: db_flags()) ->
      {ok, db_value()} | db_txn_error().
  
  transaction(Fun, Retries, Opts) ->
      transaction(Fun, Retries, infinity, Opts).
  
  
  
  %%--------------------------------------------------------------------
  