anchor.diff:  
   -export([init/4,
            loop/1]).
  +
  +-export([system_continue/3]).
  +-export([system_terminate/4]).
  +-export([system_code_change/4]).
   
   -record(st, {socket,
                buffer= <<>>,
  
positive.code: handle_message({'EXIT', _Parent, Reason}, #st{fsm_state=FsmState0, fsm_mod=FsmMod} = State) ->
      _ = FsmMod:msg_in(disconnect, FsmState0),
      {exit, Reason, State};
  handle_message(OtherMsg, #st{fsm_state=FsmState0, fsm_mod=FsmMod, pending=Pending} = State) ->
      case FsmMod:msg_in(OtherMsg, FsmState0) of
          {ok, FsmState1, Out} ->
  
negative.code: port_cmd_(Socket, Data) ->
      erlang:port_command(Socket, Data).
  
  system_continue(_, _, {State, _NrOfChildren}) ->
  	loop(State).
  
  -spec system_terminate(any(), _, _, _) -> no_return().
  system_terminate(Reason, _, _, {State, _NrOfChildren}) ->
  	teardown(State, Reason).
  
  system_code_change(Misc, _, _, _) ->
  	{ok, Misc}.
  