anchor.diff:  ) -> any().
   multi_call_and_receive(CollectorPid, Pid, Meta, Message, Timeout) ->
       %% monitor
  -    MonitorRef = monitor(process, Pid),
  +    MRef = monitor(process, Pid),
       %% send
       Pid ! {syn_multi_call, Message, self(), Meta},
       %% wait for reply
  
positive.code:     lists:foreach(fun({Pid, Meta}) ->
          spawn_link(?MODULE, multi_call_and_receive, [Self, Pid, Meta, Message, Timeout])
      end, Members),
      collect_replies(Members).
  
  -spec multi_call_reply(CallerPid :: pid(), Reply :: any()) -> {syn_multi_call_reply, pid(), Reply :: any()}.
  multi_call_reply(CallerPid, Reply) ->
  
negative.code:         {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 :: any()})) ->
      {
          Replies :: [{{pid(), Meta :: term()}, Reply :: any()}],
          BadReplies :: [{pid(), Meta :: term()}]
      }.
  collect_replies(MembersOD) ->
      collect_replies(MembersOD, [], []).
  
  -spec collect_replies(
      MembersOD :: orddict:orddict({pid(), Meta :: any()}),
      Replies :: [{{pid(), Meta :: term()}, Reply :: any()}],
      BadReplies :: [{pid(), Meta :: term()}]
  ) ->
  