anchor.diff:  
   num() ->
       choose(2, 5).
  -    %% return(3).
   
   cr_count(Num) ->
  -    Approx = 10, % ad-hoc
  -    (Approx div Num) + 1.
  +    Num * 3.
  +
  +%% Returns a list like
  +%% `[{#p_srvr{name=a, port=7501, ..}, "./eqc/data.eqc.a/"}, ...]'
  +all_list_extra(Num) ->
  +    {PortBase, DirBase} = get_port_dir_base(),
  +    [begin
  +         FLUNameStr = [$a + I - 1],
  +         FLUName = list_to_atom(FLUNameStr),
  +         MgrName = machi_flu_psup:make_mgr_supname(FLUName),
  +         {#p_srvr{name=FLUName, address="localhost", port=PortBase+I,
  +                  props=[{chmgr, MgrName}]},
  +          DirBase ++ "/data.eqc." ++ FLUNameStr}
  +     end || I <- lists:seq(1, Num)].
   
   %% Generator for possibly assymmetric partition information
   partition(FLUNames) ->
  
positive.code:             {error, Other}
      end.
  
  cleanup(#state{fc_list=FCList, cr_list=CRList}=_S) ->
      [begin unlink(FC), catch exit(FC, kill) end || {_, FC} <- FCList],
      [begin unlink(CR), catch exit(CR, kill) end || {_, CR} <- CRList],
      _ = shutdown_hard().
  
  %% Internal utilities
  
  eqc_verbose() ->
      os:getenv("EQC_VERBOSE") =:= "true".
  
negative.code:           eqc:quickcheck(eqc:testing_time(
                             PropTO, ?QC_OUT(noshrink(prop_repair_par(Verbose))))))}]}.
  
  %% Model
  
  weight(_S, change_partition) ->  20;
  weight(_S, _)                -> 100.
  
  %% Append
  
  append_args(#state{cr_count=CRCount}=S) ->
      [choose(1, CRCount), chunk(), S].
  