anchor.diff:      {LastK, LastVs, Acc} = lists:foldl(FoldFun, Acc0, Rest),
       [{LastK, LastVs} | Acc].
   
  -get_const(Access) ->
  -    get_const(Access, unpack_config(configuration:get_config())).
  -
  -
  -get_const(Access, {_N,R,W}) ->
  -    case Access of
  -    r -> R;
  -    w -> W;
  -    r1 -> 1;
  -    Other -> throw({bad_access_term, Other})
  -    end.
  +get_const(r) ->
  +    list_to_integer(couch_config:get("cluster", "r", "2"));
  +get_const(w) ->
  +    list_to_integer(couch_config:get("cluster", "w", "2"));
  +get_const(r1) ->
  +    1;
  +get_const(Other) ->
  +    throw({bad_access_term, Other}).
  
positive.code:   [{error, Msg}, {good, Good}, {bad, Bad}].
  
  
  unpack_config(#config{n=N,r=R,w=W}) ->
    {N, R, W}.
  
  
  pcall(MapFun, Servers, Const) ->
    Replies = lib_misc:pmap(MapFun, Servers, Const),
    lists:partition(fun valid/1, Replies).
  
negative.code: %%
  %%      This fun uses quorum constants from config
  key_lookup(Key, {M,F,A}, Access) ->
      N = list_to_integer(couch_config:get("cluster", "n", "3")),
      key_lookup(Key, {M,F,A}, Access, get_const(Access), N).
  
  
  %% @doc Get to the proper shard on N nodes by key lookup
  