anchor.diff:             end,
   
       erlang:apply(Impl, Args).
  +
  +inheritable_options() ->
  +    [].
  +
  +merge_option({Key, Value}, Options, ParentOptions) ->
  +    merge_option(Key, _ =:= Value, Options, ParentOptions);
  +merge_option(Key, Options, ParentOptions)
  +  when is_atom(Key) ->
  +    merge_option(Key, functools:const(true), Options, ParentOptions).
  +
  +merge_option(Key, ValuePred, Options, ParentOptions) ->
  +    case proplists:is_defined(Key, Options) of
  +        true ->
  +            %% Explicitly set in by the caller, so ignoring whatever value the
  +            %% parent has.
  +            Options;
  +        false ->
  +            NotSet = make_ref(),
  +            case proplists:get_value(Key, ParentOptions, NotSet) of
  +                NotSet ->
  +                    %% Not set by the parent, so ignoring too.
  +                    Options;
  +                Value ->
  +                    case ValuePred(Value) of
  +                        true ->
  +                            [{Key, Value} | Options];
  +                        false ->
  +                            Options
  +                    end
  +            end
  +    end.
  +
  +merge_options(Options, ParentOptions) ->
  +    lists:foldl(merge_option(_, _, ParentOptions),
  +                Options, inheritable_options()).
  
positive.code:     #activity_token{domain       = Domain,
                      domain_token = DomainToken,
                      name         = [],
                      lease        = undefined}.
  
  set_activity_token(Token) ->
      erlang:put('$leader_activities_token', Token).
  
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) ->
  