anchor.diff:              {error,Error};
           _C:_E ->
               {error,{cannot_start_daemon,_C,_E}}
  -    end;
  -
  -daemon(Port, UserOptions) when 0 =< Port, Port =< 65535 ->
  -    daemon(any, Port, UserOptions).
  +    end.
   
   
   -spec daemon(any | inet:ip_address(), inet:port_number(), daemon_options()) -> {ok,daemon_ref()} | {error,term()}
  
positive.code:       OpenTcpSocket :: open_socket(),
        Options :: client_options().
  
  connect(OpenTcpSocket, Options) when is_port(OpenTcpSocket),
                                       is_list(Options) ->
      connect(OpenTcpSocket, Options, infinity).
  
  
  
negative.code: 	    Error
      end;
  
  shell(Dest) ->
      case is_host(Dest, []) of
          true ->
              shell(Dest, ?SSH_DEFAULT_PORT, []);
          false ->
              %% Maybe socket
              shell_socket(Dest, [])
      end.
  
  
  
  -spec shell(open_socket() | host(), client_options()) ->  _.
  
  shell(Dest, Options) ->
      case is_host(Dest, Options) of
          true ->
              shell(Dest, ?SSH_DEFAULT_PORT, Options);
          false ->
              %% Maybe socket
              shell_socket(Dest, Options)
      end.
  
  shell_socket(Socket, Options) ->
      case connect(Socket, Options) of
          {ok,ConnectionRef} ->
              shell(ConnectionRef),
              close(ConnectionRef);
          Error ->
              Error
      end.
      
  
  
  -spec shell(Host, Port, Options) -> _ when
  