anchor.diff:           {chash_keyfun, {riak_core_util, chash_std_keyfun}}]).
   
   %% Generators
  +
  +longer_list(K, G) ->
  +    ?SIZED(Size, resize(trunc(K*Size), list(resize(Size, G)))).
  +
  +non_empty(G) ->
  +    ?SUCHTHAT(X, G, X /= [] andalso X /= <<>>).
  +
  +largenat() ->
  +    ?LET(X, largeint(), abs(X)).
   
   n(Max) ->
       choose(1, Max).
  
positive.code: partvals(Partitions) ->
      vector(Partitions, partval()).
  
  start_mock_servers() ->
      get_fsm_qc_vnode_master:start(),
      application:load(riak_core),
      application:start(crypto).
  
  
  
  %    ?FORALL({Partitions, Object, ReqId}, {num_partitions(), noshrink(riak_object()), noshrink(largeint())},
  %    ?FORALL({N, Ring, PartVals}, {n(Partitions), ring(Partitions), partvals(Partitions)},
  %    ?FORALL(R, n(N),
  
  prop_basic_get() ->
      ?FORALL({R,RNdiff,NQdiff,Object,ReqId,PartVals},
              {choose(1,10),choose(0,10),choose(0,4096),
               noshrink(riak_object()), noshrink(largeint()),
               ?LET(M, choose(0,20), partvals(M))},
      begin
          N = R + RNdiff,
          Q = make_power_of_two(N + NQdiff),
          Ring = riak_core_ring:fresh(Q, node()),
  
  
negative.code: test(N) ->
      quickcheck(numtests(N, prop_basic_get())).
  
  expect(Object,History,N,R) ->
      case expect(History,N,R,0,0) of
          ok  -> {ok, Object};
          Err -> {error, Err}
      end.
  
  expect([],N,R,NotFounds,_Oks) ->
      case NotFounds >= N-R+1 of
          true -> notfound;        
  