anchor.diff:  %%%===================================================================
   
   %% @private
  --spec can_deliver_based_on_trace(term(), term(), term(), term()) -> 
  -    {true, delivered} | {true, omitted} | false.
  +-spec can_deliver_based_on_trace(term(), term(), term(), term()) -> true | false.
   can_deliver_based_on_trace(Shrinking, {Type, Message}, PreviousTrace, BlockedProcesses) ->
       replay_debug("determining if message ~p: ~p can be delivered.", [Type, Message]),
   
  
positive.code:             CanDeliver = case {NextType, NextMessage} of 
                  {Type, Message} ->
                      replay_debug("=> YES!", []),
                      {true, delivered};
                  {{omit, Type}, Message} ->
                      replay_debug("=> YES: OMISSION!", []),
                      {true, omitted};
                  _ ->
                      %% But, does the message actually exist in the trace?
                      case lists:member({Type, Message}, PreviousTrace) of 
  
negative.code:                 NewBlockedProcesses = BlockedProcesses1 -- [BP],
  
                  {NewNumDelivered, RestOfTrace, NewBlockedProcesses};
              false ->
                  replay_debug("pid ~p CANNOT be unblocked yet, unmet dependencies!", [Pid]),
  
  