anchor.diff:              Response
       end.
   
  --spec leave(GroupName :: any(), Pid :: pid()) -> ok | {error, Reason :: any()}.
  +-spec leave(GroupName :: term(), Pid :: pid()) -> ok | {error, Reason :: term()}.
   leave(GroupName, Pid) ->
       leave(?DEFAULT_SCOPE, GroupName, Pid).
   
  --spec leave(Scope :: atom(), GroupName :: any(), Pid :: pid()) -> ok | {error, Reason :: any()}.
  +-spec leave(Scope :: atom(), GroupName :: term(), Pid :: pid()) -> ok | {error, Reason :: term()}.
   leave(Scope, GroupName, Pid) ->
       case syn_backbone:get_table_name(syn_groups_by_name, Scope) of
           undefined ->
  
positive.code:     CollectorPid :: pid(),
      Pid :: pid(),
      Meta :: term(),
      Message :: any(),
      Timeout :: non_neg_integer()
  ) -> any().
  multi_call_and_receive(CollectorPid, Pid, Meta, Message, Timeout) ->
  
negative.code: %% API
  %% ===================================================================
  -spec start_link(Scope :: atom()) ->
      {ok, Pid :: pid()} | {error, {already_started, Pid :: pid()}} | {error, Reason :: term()}.
  start_link(Scope) when is_atom(Scope) ->
      syn_gen_scope:start_link(?MODULE, Scope).
  
  