anchor.diff:  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  +ev_start(Pid) ->
  +    ev_announce(Pid, start, undefined).
  +
  +ev_start(Pid, Extra) ->
  +    ev_announce(Pid, start, undefined, Extra).
  +
  +ev_continue(Pid, Slogan) ->
  +    ev_announce(Pid, continue, Slogan).
  +
  +%% ev_continue(Pid, Slogan, Extra) ->
  +%%     ev_announce(Pid, continue, Slogan, Extra).
  +
  +ev_ready(Pid, Slogan) ->
  +    ev_announce(Pid, ready, Slogan).
  +
  +ev_ready(Pid, Slogan, Extra) ->
  +    ev_announce(Pid, ready, Slogan, Extra).
  +
  +ev_terminate(Pid) ->
  +    Pid ! {terminate, self()}.
  +
  +ev_announce(To, Tag, Slogan) ->
  +    ev_announce(To, Tag, Slogan, undefined).
  +
  +ev_announce(To, Tag, Slogan, Extra) ->
  +    To ! {Tag, self(), Slogan, Extra}.
  +
  +ev_await_start() ->
  +    receive
  +        {start, Pid, _, undefined} ->
  +            Pid;
  +        {start, Pid, _, Extra} ->
  +            {Pid, Extra}
  +    end.
  +
  +ev_await_continue(Pid, Name, Slogan) ->
  +    ev_await_continue(Pid, Name, Slogan, []).
  +ev_await_continue(Pid, Name, Slogan, Pids) when is_pid(Pid) andalso is_list(Pids) ->
  +    ev_await(Pid, Name, continue, Slogan, Pids).
  +
  +ev_await_ready(Pid, Name, Slogan) ->
  +    ev_await_ready(Pid, Name, Slogan, []).
  +ev_await_ready(Pid, Name, Slogan, Pids) when is_pid(Pid) andalso is_list(Pids) ->
  +    ev_await(Pid, Name, ready, Slogan, Pids).
  +
  +ev_await_terminate(Pid, Name) ->
  +    ev_await_terminate(Pid, Name, []).
  +ev_await_terminate(Pid, Name, Pids) ->
  +    receive
  +        {terminate, Pid} ->
  +            ok;
  +        {'DOWN', _, process, Pid, Reason} ->
  +            ee("Unexpected DOWN regarding ~w ~p: "
  +               "~n   ~p", [Name, Pid, Reason]),
  +            {error, {unexpected_exit, Name}};
  +        {'DOWN', _, process, DownPid, Reason} ->
  +            case ev_await_check_down(DownPid, Reason, Pids) of
  +                ok ->
  +                    ei("DOWN from unknown process ~p: "
  +                       "~n   ~p", [DownPid, Reason]),
  +                    ev_await_terminate(Pid, Name, Pids);
  +                {error, _} = ERROR ->
  +                    ERROR
  +            end
  +    end.
  +
  +ev_await_termination(Pid) ->
  +    receive
  +        {'DOWN', _, process, Pid, _} ->
  +            ok
  +    end.
  +
  +%% We expect a message from Pid, but we also watch for DOWN from 
  +%% both Pid and Pids, in which case the test has failed!
  +ev_await(Pid, Name, Tag, Slogan, Pids) ->
  +    receive
  +        {Tag, Pid, Slogan, undefined} ->
  +            ok;
  +        {Tag, Pid, Slogan, Extra} ->
  +            {ok, Extra};
  +        {'DOWN', _, process, Pid, Reason} ->
  +            ee("Unexpected DOWN regarding ~w ~p: "
  +               "~n   ~p", [Name, Pid, Reason]),
  +            {error, {unexpected_exit, Name}};
  +        {'DOWN', _, process, DownPid, Reason} ->
  +            case ev_await_check_down(DownPid, Reason, Pids) of
  +                ok ->
  +                    ei("DOWN from unknown process ~p: "
  +                       "~n   ~p", [DownPid, Reason]),
  +                    ev_await(Pid, Name, Tag, Slogan, Pids);
  +                {error, _} = ERROR ->
  +                    ERROR
  +            end
  +    end.
  +
  +ev_await_check_down(DownPid, DownReason, Pids) ->
  +    case lists:keymember(DownPid, 1, Pids) of
  +        {value, {_, Name}} ->
  +            ee("Unexpected DOWN regarding ~w ~p: "
  +               "~n   ~p", [Name, DownPid, DownReason]),
  +            {error, {unexpected_exit, Name}};
  +        false ->
  +            ok
  +    end.
  +
  +
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +
   sock_open(Domain, Type, Proto) ->
       try socket:open(Domain, Type, Proto) of
           {ok, Socket} ->
  
positive.code:                            MRef = erlang:monitor(process, Tester),
                             {ok, State#{tester_mref => MRef}}
                     end},
           #{desc => "announce ready",
             cmd  => fun(#{tester := Tester} = _State) ->
                             Tester ! {ready, self()},
                             ok
                     end},
  
           %% *** The actual test ***
           #{desc => "await continue (with connect)",
             cmd  => fun(#{tester := Tester} = _State) ->
                             receive
                                 {'DOWN', _, process, Tester, Reason} ->
                                     {error, {unexpected_exit, tester, Reason}};
                                 {continue, Tester} ->
                                     ok
                             end
                     end},
           #{desc => "connect",
             cmd  => fun(#{sock := Sock, ssa := SSA}) ->
  
negative.code:          %% *** Wait for start order ***
           #{desc => "await start (from tester)",
             cmd  => fun(State) ->
                             Tester = ev_await_start(),
                             {ok, State#{tester => Tester}}
                     end},
  
           %% *** Init part ***
  