anchor.diff:  -spec channel(state()) -> comm:channel().
   channel(State)                 -> element(4, State).
   
  --spec socket(state()) -> inet:socket() | notconnected.
  +-spec socket(state()) -> socket() | notconnected.
   socket(State)                  -> element(5, State).
   
  --spec set_socket(state(), inet:socket() | notconnected) -> state().
  +-spec set_socket(state(), socket() | notconnected) -> state().
   set_socket(State, Val)         -> setelement(5, State, Val).
   
   -spec started(state()) -> erlang_timestamp().
  
positive.code:             inet:sockname(Socket)
      end.
  
  -spec peername(Socket::inet:socket()|ssl:sslsocket()) -> term().
  peername(Socket) ->
      case ?COMM of
          ssl ->
  
negative.code: 
  -spec state_new(DestIP::inet:ip_address(), DestPort::comm_server:tcp_port(),
                  LocalListenPort::comm_server:tcp_port(), Channel::comm:channel(),
                  Socket::socket() | notconnected) -> state().
  state_new(DestIP, DestPort, LocalListenPort, Channel, Socket) ->
      {DestIP, DestPort, LocalListenPort, Channel, Socket,
       _StartTime = os:timestamp(), _SentMsgCount = 0, _ReceivedMsgCount = 0,
  