anchor.diff:  
   %%%===================================================================
   
  --type required()   :: quorum | other | all.
  +-type required()   :: quorum | other | all | all_or_quorum.
   
   -record(msgstate, {awaiting = undefined :: 'undefined' | reqid(),
                      timer    = undefined :: 'undefined' | reference(),
  
positive.code:             collect_timeout(Replies, Parent);
          false ->
              collect_replies(Collect)
      end.
  
  -spec wait_for_quorum(future()) -> {quorum_met, [peer_reply()]} |
  
negative.code:                               required=Required,
                                extra=Extra}) ->
      case quorum_met(Replies, Id, Views, Required, Extra) of
          true when Required =:= all_or_quorum ->
              %% If we've hit a quorum with all_or_quorum required, then
              %% we need to wait some additional length of time and see
              %% if we get replies from all.
              try_collect_all(Collect);
          true ->
              From ! {Ref, ok, Replies},
              ok;
  