anchor.diff:                              [H|T] -> {H, T}
                           end,
   		    %% Remove process Next from the `active` set and run it.
  -		    NewActive = set_remove(Active, Next),
  +		    NewActive = sets:del_element(Next, Active),
   		    ?debug_2("Running process ~s.~n", [Next]),
   		    run(Next),
   		    %% Create new state.
  
positive.code:     ?RP_SCHED ! #sched{msg = spawn, pid = self(), misc = Pid},
      rep_yield(),
      Pid.
  
  %%%----------------------------------------------------------------------
  %%% Set interface
  %%%----------------------------------------------------------------------
  
  %% Add Element to Set and return new set.
  set_add(Set, Element) ->
      sets:add_element(Element, Set).
  
  %% Return true if Set is empty, false otherwise.
  set_is_empty(Set) ->
      sets:to_list(Set) =:= [].
  
  %% Return a list of the elements in Set.
  set_list(Set) ->
      sets:to_list(Set).
  
  %% Checks if Element is in Set.
  set_member(Set, Element) ->
      sets:is_element(Element, Set).
  
  %% Return a new empty set.
  set_new() ->
      sets:new().
  
  %% Remove a "random" element from Set and return that element and the
  %% new set.
  %% Crashes if given an empty set.
  set_pop(Set) ->
      [Head|Tail] = sets:to_list(Set),
      {Head, sets:from_list(Tail)}.
  
  %% Remove Element from Set.
  set_remove(Set, Element) ->
      sets:del_element(Element, Set).
  
  
  
  %%%----------------------------------------------------------------------
  %%% Unit tests
  %%%----------------------------------------------------------------------
  
  -spec set_test_() -> term().
  
  set_test_() ->
       [{"Empty",
         ?_assertEqual(true, set_is_empty(set_new()))},
        {"Add/remove one",
         ?_test(begin
  		  {Result, NewSet} = set_pop(set_add(set_new(), 42)),
  		  ?assertEqual(42, Result),
  		  ?assertEqual(true, set_is_empty(NewSet))
  	      end)},
        {"Add/remove multiple",
        ?_test(begin
  		 Set = set_add(set_add(set_add(set_new(), "42"), "P4.2"),
                                 "P42"),
  		 List1 = lists:sort(set_list(Set)),
  		 {Val1, Set1} = set_pop(Set),
  		 {Val2, Set2} = set_pop(Set1),
  		 {Val3, Set3} = set_pop(Set2),
  		 List2 = lists:sort([Val1, Val2, Val3]),
  		 ?assertEqual(List1, List2),
  		 ?assertEqual(true, set_is_empty(Set3))
  	     end)}].
  
negative.code: %% Returns the process to be run next.
  search(#info{active = Active, state = State}) ->
      %% Remove a process from the `actives` set and run it.
      [Next|Tail] = sets:to_list(Active),
      NewActive = sets:from_list(Tail),
      %% Store all other possible successor states for later exploration.
      [state:insert(state:extend(State, Lid)) || Lid <- sets:to_list(NewActive)],
      Next.
  
  %% Block message handler.
  