anchor.diff:  
   find_could_have_run([],     _, Acc) -> Acc;
   find_could_have_run( _, [_,_], Acc) -> Acc;
  -find_could_have_run(Ps, [TraceTop|Rest], Acc) -> 
  +find_could_have_run(Ps, [TraceTop|Rest], Acc) ->
       #trace_state{last = {P,_,_}, done = Done, sleep_set = SleepSet} = TraceTop,
       NotAllowed = ordsets:union(SleepSet, Done),
       Could1 = ordsets:subtract(Ps, NotAllowed),
  
positive.code: convert_error_trace({Lid, {error, [ErrorOrThrow,Kind|_]}, _Msgs}, Procs)
    when ErrorOrThrow =:= error; ErrorOrThrow =:= throw ->
      Msg =
          concuerror_error:type(concuerror_error:new({Kind, foo})),    
      {{exit, Lid, Msg}, Procs};
  convert_error_trace({Lid, block, []}, Procs) ->
      {{block, Lid}, Procs};
  
negative.code:                 PreSI#trace_state{backtrack = NewBacktrack},
              {done, [NewPreSI|Rest]}
      end.
  
  %% - add new entry with new entry
  %% - wait any possible additional messages
  %% - check for async
  