anchor.diff:  %% ====================================================================
   %% gen_fsm callbacks
   %% ====================================================================
  -
   %% @private
   init([Mod,
         From={_, ReqId, _},
  
positive.code:                 plan_fun :: function(),
                  process_fun :: function()
                 }).
  
  %% ===================================================================
  %% Public API
  
negative.code: 
  -type req_id() :: non_neg_integer().
  -type from() :: {atom(), req_id(), pid()}.
  -type pvc() :: all | pos_integer().
  -type request() :: tuple().
  -type vnode_selector() :: all | allup.
  -record(state, {coverage_vnodes :: [{non_neg_integer(), node()}],
                  mod :: atom(),
                  mod_state :: mod_state(),
                  n_val :: pos_integer(),
                  node_check_service :: module(),
                  vnode_selector :: vnode_selector(),
                  pvc :: pvc(), % primary vnode coverage
                  request :: request(),
                  req_id :: req_id(),
                  required_responses :: pos_integer(),
                  response_count=0 :: non_neg_integer(),
  