anchor.diff:  % API functions
   -export(
       [ start/2
  +    , start_async/2
       , start_link/2
  +    , start_link_async/2
       , stop/1
       , request_event/2
       , request_event_async/2
  
positive.code:     Tag = make_ref(),
      { { From, Tag }, { To, Tag } }.
  
  -spec enter_loop( string() | binary(), [ string() | binary() ] ) ->
      { stopped, { pid(), reference() } }.
  enter_loop( Driver, Parameters ) ->
      { ok, Port } = start_driver( Driver, Parameters ),
      receive_loop( Port ).
  
  -spec receive_loop( port() ) -> { stopped, { pid(), reference() } }.
  
negative.code: 
  -spec start( binary(), [ binary() ] ) -> { ok, pid() }.
  start( Driver, Parameters ) ->
      { _, Tag } = From = from(),
      Pid = spawn( fun() -> enter_loop( Driver, Parameters, From ) end ),
      wait_start( { Pid, Tag } ).
  
  -spec start_link( binary(), [ binary() ] ) -> { ok, pid() }.
  start_link( Driver, Parameters ) ->
      { _, Tag } = From = from(),
      Pid = spawn_link( fun() -> enter_loop( Driver, Parameters, From ) end ),
      wait_start( { Pid, Tag } ).
  
  -spec start_async( binary(), [ binary() ] ) -> { ok, { pid(), reference() } }.
  start_async( Driver, Parameters ) ->
      { _, Tag } = From = from(),
      Pid = spawn_link( fun() -> enter_loop( Driver, Parameters, From ) end ),
      { ok, { Pid, Tag } }.
  
  -spec start_link_async( binary(), [ binary() ] ) -> { ok, { pid(), reference() } }.
  start_link_async( Driver, Parameters ) ->
      { _, Tag } = From = from(),
      Pid = spawn_link( fun() -> enter_loop( Driver, Parameters, From ) end ),
      { ok, { Pid, Tag } }.
  
  -spec stop( pid() ) -> ok | { error, timeout }.
  stop( Pid ) ->
  