anchor.diff:            nexts     = dict:new()        :: dict(), %% dict(lid:lid(), instr()),
             error_nxt = none              :: lid:lid() | 'none',
             clock_map = empty_clock_map() :: clock_map(),
  +          preemptions = 0               :: non_neg_integer(),
             lid_trace = new_lid_trace()   :: queue() %% queue({transition(), clock_vector()})
            }).
   
  
positive.code: add_some_next_to_backtrack(State) ->
      #dpor_state{trace = [TraceTop|Rest], fake_dpor = Fake} = State,
      #trace_state{enabled = Enabled, sleep_set = SleepSet,
                   error_nxt = ErrorNext} = TraceTop,
      ?f_debug("Pick random: Enabled: ~w Done: ~w Sleeping: ~w\n",
               [Enabled, Done, SleepSet]),
      Backtrack =
          case ordsets:subtract(Enabled, SleepSet) of
              [] -> [];
  
negative.code:           trace       = []    :: [trace_state()],
            must_replay = false :: boolean(),
            proc_before = []    :: [pid()],
            fake_dpor   = false :: boolean(),
            preemption_bound = inf :: non_neg_integer() | 'inf'
           }).
  
  %% STUB
  interleave_dpor(Target, PreBound, DporFake) ->
      ?f_debug("Interleave dpor!\n"),
      Procs = processes(),
      %% To be able to clean up we need to be trapping exits...
  