anchor.diff:              {ok, A, State#state{activities = Rest}}
       end.
   
  +have_local_lease(#state{local_lease_holder = Lease}) ->
  +    Lease =/= undefined.
  +
  +have_lease(undefined, State) ->
  +    have_local_lease(State);
   have_lease(ExpectedLease, #state{local_lease_holder = ActualLease}) ->
       ExpectedLease =:= ActualLease.
   
  -have_quorum(_, #state{local_lease_holder = undefined}) ->
  -    false;
  -have_quorum(follower, _State) ->
  +have_quorum(follower, State) ->
  +    true = (State#state.local_lease_holder =/= undefined),
       true;
   have_quorum({all, Nodes}, #state{leases = Leases}) ->
       sets:is_subset(Nodes, Leases);
  
positive.code: 
  -type activity_option() :: {quorum_timeout, non_neg_integer()}
                           | {timeout, non_neg_integer()}
                           | quiet.
  -type activity_options() :: [activity_option()].
  
  -record(activity, { pid          :: pid(),
  
negative.code:                              DomainToken, TokenName, Quorum, Opts | Args]),
  
      call(Node, {wait_for_quorum,
                  Lease, Quorum, Unsafe, SubCall, QuorumTimeout}, OuterTimeout).
  
  call(Call, Timeout) ->
      call(node(), Call, Timeout).
  