anchor.diff:  %% rpc endpoints
   %%  call to with_db will supply your M:F with a #db{} and then remaining args
   
  -changes(DbName, #changes_args{} = Args, StartSeq) ->
  -    changes(DbName, [Args], StartSeq);
  -changes(DbName, Options, StartVector) ->
  +%% @equiv changes(DbName, Args, StartSeq, [])
  +changes(DbName, Args, StartSeq) ->
  +    changes(DbName, Args, StartSeq, []).
  +
  +changes(DbName, #changes_args{} = Args, StartSeq, DbOptions) ->
  +    changes(DbName, [Args], StartSeq, DbOptions);
  +changes(DbName, Options, StartVector, DbOptions) ->
       erlang:put(io_priority, {interactive, DbName}),
       #changes_args{dir=Dir} = Args = lists:keyfind(changes_args, 1, Options),
  -    case get_or_create_db(DbName, []) of
  +    case get_or_create_db(DbName, DbOptions) of
       {ok, Db} ->
           StartSeq = calculate_start_seq(Db, node(), StartVector),
           Enum = fun changes_enumerator/2,
  
positive.code:     set_revs_limit/3, create_shard_db_doc/2, delete_shard_db_doc/2]).
  -export([get_all_security/2]).
  
  -include_lib("fabric/include/fabric.hrl").
  -include_lib("couch/include/couch_db.hrl").
  -include_lib("couch_mrview/include/couch_mrview.hrl").
  
negative.code:     Docs = make_att_readers(Docs0),
      with_db(DbName, Options, {couch_db, update_docs, [Docs, Options, X]}).
  
  %% @equiv group_info(DbName, DDocId, [])
  group_info(DbName, DDocId) ->
      group_info(DbName, DDocId, []).
  
  group_info(DbName, DDocId, DbOptions) ->
      with_db(DbName, DbOptions, {couch_mrview, get_info, [DDocId]}).
  
  reset_validation_funs(DbName) ->
      case get_or_create_db(DbName, []) of
  