anchor.diff:  from( ) ->
       { self(), make_ref() }.
   
  --spec wait_start( { pid(), reference() } ) -> { ok, pid() } | { error, term() }.
  -wait_start( Id ) ->
  -    wait( Id, started ).
  -
  --spec wait_stop( { pid(), reference() } ) -> ok | { error, term() }.
  -wait_stop( Id ) ->
  -    case wait( Id, stopped ) of
  -        { ok, _ } -> ok;
  -        E -> E
  -    end.
  -
  --spec wait_event( { pid(), reference() } ) -> { event, term() } | { error, term() }.
  -wait_event( Id ) ->
  -    wait( Id, event ).
  -
  --spec wait( { pid(), reference() }, term() ) ->
  -    { ok, term() } | { error, term() }.
  -wait( Id, Type ) ->
  +-spec wait( { pid(), reference() } ) ->
  +    any() | { error, timeout }.
  +wait( Id ) ->
       receive
  -        { { Type, Result }, Id } -> Result;
  -        Error -> Error
  +        { Result, Id } -> Result
       after
           ?DRIVER_TIMEOUT -> { error, timeout }
       end.
  
positive.code: request_event( Pid, Event ) ->
      { From, To } = from_to( self(), Pid ),
      Pid ! { { get_event,  Event }, From },
      wait_event( To ).
  
  -spec request_event_async( pid(), string() ) -> { ok, { pid(), reference() } }.
  request_event_async( Pid, Event ) ->
  
negative.code: server_scenario_async_test_() ->
      { ok, From } = start_test_server_async( "echo.sh" ),
      { ok, Pid } = receive
          { Res1, From } -> Res1
      after
          ?DRIVER_TIMEOUT -> timeout
      end,
  