anchor.diff:  %%====================================================================
   
   %% Work out the expected return value from the FSM and the expected postcommit log.
  -expect(H, N, W, RealW, DW, EffDW, Options, Precommit, Postcommit, Object, PL2) ->
  +expect(H, N, PW, RealPW, W, RealW, DW, EffDW, Options, Precommit, Postcommit, Object, PL2) ->
       ReturnObj = case proplists:get_value(returnbody, Options, false) of
                       true ->
                           Object;
                       false ->
                           noreply
                   end,
  +    NumPrimaries = length([xx || {_,primary} <- PL2]),
       UpNodes =  length(PL2),
       MinNodes = erlang:max(1, erlang:max(RealW, EffDW)),
       ExpectResult = 
           if
  +            PW =:= garbage ->
  +                {error, {pw_val_violation, garbage}};
  +
               W =:= garbage ->
                   {error, {w_val_violation, garbage}};
   
               DW =:= garbage ->
                   {error, {dw_val_violation, garbage}};
  +
  +            RealPW > NumPrimaries ->
  +                {error, {pr_val_unsatisfied, RealPW, NumPrimaries}};
   
               RealW > N orelse EffDW > N ->
                   {error, {n_val_violation, N}};
  
positive.code: 
          %% Work out how the vnodes should respond and in which order
          %% the messages should be delivered.
          Options = fsm_eqc_util:make_options([{w, W}, {dw, DW}, {timeout, 200} | Options0], []),
          VPutReplies = make_vput_replies(VPutResp, Objects, Options),
          PL2 = make_preflist2(VPutResp, 1, []),
  
  
negative.code: %%====================================================================
  
  prop_basic_put() ->
      ?FORALL({PWSeed, WSeed, DWSeed,
               Objects, ObjectIdxSeed,
               VPutResp,
               Options0, AllowMult, Precommit, Postcommit}, 
              {w_dw_seed(), w_dw_seed(), w_dw_seed(),
               fsm_eqc_util:riak_objects(), fsm_eqc_util:largenat(),
               vnodeputresps(),
               options(),bool(), precommit_hooks(), postcommit_hooks()},
      begin
          N = length(VPutResp),
          {PW, RealPW} = w_dw_val(N, 1000000, PWSeed),
          {W, RealW} = w_dw_val(N, 1000000, WSeed),
          {DW, RealDW}  = w_dw_val(N, RealW, DWSeed),
  
  