anchor.diff:  handle_call(print, _From, #state{trace=Trace}=State) ->
       lager:info("~p: printing trace", [?MODULE]),
   
  -    lists:foreach(fun({Type, Message}) ->
  +    lists:foldl(fun({Type, Message}, Count) ->
           case Type of
               interposition_fun ->
                   %% Destructure message.
  
positive.code:                 %% Format trace accordingly.
                  case InterpositionType of
                      receive_message ->
                          lager:info("~p: ~p <- ~p: ~p", [?MODULE, OriginNode, TracingNode, MessagePayload]);
                      forward_message ->
                          lager:info("~p: ~p => ~p: ~p", [?MODULE, TracingNode, OriginNode, MessagePayload])
                  end;
              post_interposition_fun ->
                  %% Destructure message.
  
negative.code:                     true ->
                          case InterpositionType of
                              receive_message ->
                                  lager:info("~p: ~p: ~p <- ~p: ~p", [?MODULE, Count, TracingNode, OriginNode, MessagePayload]);
                              forward_message ->
                                  lager:info("~p: ~p: ~p => ~p: ~p", [?MODULE, Count, TracingNode, OriginNode, MessagePayload])
                          end;
                      false ->
                          case RewrittenMessagePayload of 
                              undefined ->
                                  case InterpositionType of
                                      receive_message ->
                                          lager:info("~p: ~p: ~p <- ~p: DROPPED ~p", [?MODULE, Count, TracingNode, OriginNode, MessagePayload]);
                                      forward_message ->
                                          lager:info("~p: ~p: ~p => ~p: DROPPED ~p", [?MODULE, Count, TracingNode, OriginNode, MessagePayload])
                                  end;
                              _ ->
                                  case InterpositionType of
                                      receive_message ->
                                          lager:info("~p: ~p: ~p <- ~p: REWROTE ~p to ~p", [?MODULE, Count, TracingNode, OriginNode, MessagePayload, RewrittenMessagePayload]);
                                      forward_message ->
                                          lager:info("~p: ~p: ~p => ~p: REWROTE ~p to ~p", [?MODULE, Count, TracingNode, OriginNode, MessagePayload, RewrittenMessagePayload])
                                  end
                          end
                  end;
              _ ->
                  lager:info("~p: ~p: unknown message type: ~p, message: ~p", [?MODULE, Count, Type, Message])
          end,
  
          %% Advance line number.
          Count + 1
      end, 0, Trace),
  
      {reply, ok, State};
  handle_call(Msg, _From, State) ->
  