anchor.diff:  
   run(Options) ->
     process_flag(trap_exit, true),
  +  put(bound_exceeded, false),
     {FirstProcess, System} =
       concuerror_callback:spawn_first_process(Options),
     InitialTrace =
  
positive.code:       {true, NewState}
    end.
  
  find_prefix([#trace_state{wakeup_tree = []}|Rest], State) ->
    find_prefix(Rest, State);
  find_prefix(Trace, _State) -> Trace.
  
  replay(#scheduler_state{need_to_replay = false} = State) ->
    State;
  
negative.code: max_cv(D1, D2) ->
    Merger = fun(_Key, V1, V2) -> max(V1, V2) end,
    orddict:merge(Merger, D1, D2).
  
  next_bound(SchedulingBoundType, Done, PreviousActor, Bound) ->
    case SchedulingBoundType of
      none -> Bound;
      simple ->
        %% First reschedule costs one point, otherwise nothing.
        case Done of
          [_] -> Bound - 1;
          _ -> Bound
        end;
      bpor ->
        NonPreemptExplored =
          [E || #event{actor = PA} = E <- Done, PA =:= PreviousActor] =/= [],
        case NonPreemptExplored of
          true -> Bound - 1;
          false -> Bound
        end
    end.
  
  %% =============================================================================
  
  