anchor.diff:  collect_replies([], Replies, BadReplies) -> {Replies, BadReplies};
   collect_replies(MembersOD, Replies, BadReplies) ->
       receive
  -        {reply, Pid, Reply} ->
  +        {syn_reply, Pid, Reply} ->
               {Meta, MembersOD1} = orddict:take(Pid, MembersOD),
               collect_replies(MembersOD1, [{{Pid, Meta}, Reply} | Replies], BadReplies);
   
  -        {bad_pid, Pid} ->
  +        {syn_bad_reply, Pid} ->
               {Meta, MembersOD1} = orddict:take(Pid, MembersOD),
               collect_replies(MembersOD1, Replies, [{Pid, Meta} | BadReplies])
       end.
  
positive.code:     %% monitor
      MRef = monitor(process, Pid),
      %% send
      Pid ! {syn_multi_call, Message, self(), Meta},
      %% wait for reply
      receive
          {syn_multi_call_reply, Pid, Reply} ->
              CollectorPid ! {reply, Pid, Reply};
  
          {'DOWN', MRef, _, _, _} ->
              CollectorPid ! {bad_pid, Pid}
  
      after Timeout ->
          CollectorPid ! {bad_pid, Pid}
      end.
  
  -spec collect_replies(MembersOD :: orddict:orddict({pid(), Meta :: term()})) ->
  
negative.code:     collect_replies(orddict:from_list(Members)).
  
  -spec multi_call_reply(CallerPid :: pid(), Reply :: term()) -> {syn_multi_call_reply, pid(), Reply :: term()}.
  multi_call_reply({Ref, ClientPid}, Reply) ->
      ClientPid ! {syn_multi_call_reply, Ref, Reply}.
  
  %% ===================================================================
  %% Callbacks
  