anchor.diff:      , start_link/2
       , start_link_async/2
       , stop/1
  +    , stop_async/1
       , request_event/2
       , request_event_async/2
       ] ).
  
positive.code: stop( Pid ) ->
      { From, To } = from_to( self(), Pid ),
      Pid ! { stop, From },
      receive
          { stopped, To } -> ok
      after
          ?DRIVER_TIMEOUT -> { error, timeout }
      end.
  
  -spec request_event( pid(), string() ) -> { ok, term() } | { error, timeout }.
  request_event( Pid, Event ) ->
      { From, To } = from_to( self(), Pid ),
      Pid ! { { get_event,  Event }, From },
      receive
          { { event, Result }, To } -> Result
      after
          ?DRIVER_TIMEOUT -> { error, timeout }
      end.
  
  -spec request_event_async( pid(), string() ) -> { ok, { pid(), reference() } }.
  request_event_async( Pid, Event ) ->
  
negative.code: driver_get_event_test_() ->
      { ok, Port } = start_test_driver( "echo.sh" ),
      Res = get_event( Port, "SomeEvent" ),
      ExpData = { ok, [ "EVENT", "SomeEvent" ] },
      [ { "get event", ?_assertEqual( ExpData, Res ) }
      ].
  
  
  