anchor.diff:                      % io:format("=> MessageTypesFromTraceLines: ~p~n", [MessageTypesFromTraceLines]),
                       MessageTypesFromNewTraceLines = message_types(hd(NewTraceLines)),
                       % io:format("=> MessageTypesFromNewTraceLines: ~p~n", [MessageTypesFromNewTraceLines]),
  -
  -                    Difference = lists:usort(MessageTypesFromNewTraceLines) -- lists:usort(MessageTypesFromTraceLines),
  -                    io:format("=> Difference: ~p~n", [Difference]),
  -
  -                    NewTraces = case length(Difference) > 0 of
  +                    DifferenceTraceLines = hd(NewTraceLines) -- TraceLines,
  +                    % io:format("=> DifferenceTraceLines: ~p~n", [DifferenceTraceLines]),
  +
  +                    DifferenceTypes = lists:usort(MessageTypesFromNewTraceLines) -- lists:usort(MessageTypesFromTraceLines),
  +                    io:format("=> DifferenceTypes: ~p~n", [DifferenceTypes]),
  +
  +                    NewTraces = case length(DifferenceTypes) > 0 of
                           true ->
                               io:format("=> * Adding trace to list to explore.~n", []),
   
  -                            case lists:keymember(Difference, 3, NewTraces0) of 
  +                            case lists:keymember(DifferenceTypes, 3, NewTraces0) of 
                                   true ->
                                       io:format("=> * Similar trace already exists, ignoring!~n", []),
                                       NewTraces0;
                                   false ->
  -                                    NewTraces0 ++ [{hd(NewTraceLines), Omissions, Difference}]
  +                                    NewTraces0 ++ [{hd(NewTraceLines), Omissions, DifferenceTypes, DifferenceTraceLines}]
                               end;
                           false ->
                               NewTraces0
  
positive.code:                 false
          end
      end, TraceLines),
      io:format("Number of items in message trace: ~p~n", [length(MessageTraceLines)]),
  
      %% Generate the powerset of tracelines.
      {PowersetTime, MessageTraceLinesPowerset} = timer:tc(fun() -> powerset(MessageTraceLines) end),
      io:format("Number of message sets in powerset: ~p~n", [length(MessageTraceLinesPowerset)]),
      io:format("Powerset generation took: ~p~n", [PowersetTime]),
  
      TracesToIterate = case os:getenv("SUBLIST") of 
          false ->
  
negative.code:     %% Perform recursive analysis of the traces.
      PreviousIteration = 1,
      PreviousClassificationsExplored = [],
      analyze(1, PreloadOmissionFile, ReplayTraceFile, TraceFile, Causality, Annotations, PreviousIteration, PreviousClassificationsExplored, [{TraceLinesWithoutFailure, [], [], []}]),
  
      %% Should we try to find witnesses?
      case os:getenv("FIND_WITNESSES") of 
  