anchor.diff:      io:format(Io, "~p.~n", [FilteredTrace]),
       file:close(Io),
   
  -    ok.+    ok.
  +
  +%% Should we do replay debugging?
  +replay_debug(Line, Args) ->
  +    case ?REPLAY_DEBUG of
  +        true ->
  +            lager:info("~p: " ++ Line, [?MODULE] ++ Args);
  +        false ->
  +            ok
  +    end.
positive.code: 
  %% @private 
  can_deliver_based_on_trace(Shrinking, {Type, Message}, PreviousTrace, BlockedProcesses) ->
      lager:info("~p: determining if message ~p: ~p can be delivered.", [?MODULE, Type, Message]),
  
      case PreviousTrace of 
          [{NextType, NextMessage} | _] ->
              CanDeliver = case {NextType, NextMessage} of 
                  {Type, Message} ->
                      lager:info("~p: => YES!", [?MODULE]),
                      true;
                  _ ->
                      %% But, does the message actually exist in the trace?
                      case lists:member({Type, Message}, PreviousTrace) of 
                          true ->
                              lager:info("~p: => NO, waiting for message: ~p: ~p", [?MODULE, NextType, NextMessage]),
                              false;
                          false ->
                              %% new messages in the middle of the trace.
                              %% this *should* be the common case if we shrink from the start of the trace forward (foldl)
                              case Shrinking of 
                                  true ->
                                      lager:info("~p: => CONDITIONAL YES, message doesn't exist in previous trace, but shrinking: ~p ~p", [?MODULE, Type, Message]),
                                      true;
                                  false ->
                                      lager:info("~p: => NO, waiting for message: ~p: ~p", [?MODULE, NextType, NextMessage]),
                                      false
                              end
                      end
              end,
  
              lager:info("~p: can deliver: ~p blocked processes: ~p", [?MODULE, CanDeliver, BlockedProcesses]),
  
              CanDeliver;
          [] ->
  
negative.code:     %% Did we deliver something? If so, try again.
      case ND > 0 of 
          true ->
              replay_debug("~p: was able to deliver a message, trying again", [?MODULE]),
              trace_deliver_log_flush(Shrinking, T, BP);
          false ->
              replay_debug("~p: flush attempt finished.", [?MODULE]),
              {T, BP}
      end.
  
  