anchor.diff:      Merger = fun(_Key, V1, V2) -> max(V1, V2) end,
       dict:merge(Merger, D1, D2).
   
  -check_pollable(CV, OldTraceTop, TraceTop) ->
  +check_pollable(OldTraceTop, TraceTop) ->
       #trace_state{pollable = Pollable} = TraceTop,
       PollableList = ordsets:to_list(Pollable),
       ?f_debug("Polling...\n"),
  
positive.code:     NewLidTrace =
          queue:in({PossiblyRewrittenSelected, UpdatedClockVector}, LidTrace),
      {NewPrevTraceTop, NewTraceTop} =
          check_pollable(UpdatedClockVector, PrevTraceTop, InstrNewTraceTop),
      NewTrace =
          [NewTraceTop#trace_state{lid_trace = NewLidTrace},
           NewPrevTraceTop|Rest],
  
negative.code:     #trace_state{i = I, last = {ProcSI, _} = SI, preemptions = Preemptions} = StateI,
      case Preemptions + 1 =< PreBound of
          true ->
              Clock = lookup_clock_value(ProcSI, ClockVector),
              case I > Clock andalso dependent(Transition, SI) of
                  false ->
                      add_all_backtracks_trace(Transition, ClockVector, PreBound,
                                               Trace, [StateI|Acc]);
                  true ->
                      ?f_debug("~4w: ~p ~p Clock ~p\n",
                               [I, dependent(Transition, SI), SI, Clock]),
                      [#trace_state{enabled = Enabled,
                                    backtrack = Backtrack,
                                    sleep_set = SleepSet} =
                           PreSI|Rest] = Trace,
                      Candidates = ordsets:subtract(Enabled, SleepSet),
                      case pick_from_E(Candidates, I, ClockVector) of
  