anchor.diff:    when is_function(Body, 0) ->
       Body().
   
  -make_activity_token(Domain, DomainToken, Name, State) ->
  +make_activity_token(Domain, DomainToken, Name, Opts, State) ->
       {LeaseNode, _LeaseUUID} = Lease = State#state.local_lease_holder,
       true = (LeaseNode =:= node()),
   
       #activity_token{lease        = Lease,
                       domain_token = DomainToken,
                       domain       = Domain,
  -                    name         = Name}.
  +                    name         = Name,
  +                    options      = Opts}.
   
   make_fresh_activity_token(Domain) ->
       make_fresh_activity_token(Domain, undefined).
  
positive.code: handle_start_activity(Async,
                        Domain,
                        DomainToken, Name, Quorum, Opts, Body, From, State) ->
      ActivityToken = make_activity_token(Domain, DomainToken, Name, State),
      check_no_domain_conflicts(
        ActivityToken, From, State,
        fun () ->
  
negative.code: start_activity_with_token(Node, ActivityToken, Name, Quorum, Body, Opts) ->
      {ok, Async} = async:get_identity(),
  
      FinalOpts = merge_options(Opts, ActivityToken#activity_token.options),
      check_activity_body(Node, Body),
      call_wait_for_quorum(Node, ActivityToken, Quorum, FinalOpts,
                           start_activity, [Async, Name, Body]).
  
  start_activity_bypass(Node, _Domain, _Name, _Quorum, Body, _Opts) ->
  