`sig
type socket
val ssl_socket : Lwt_ssl.socket -> Ssl.socket option
val ssl_accept : Lwt_unix.file_descr -> Ssl.context -> Lwt_ssl.socket Lwt.t
val ssl_connect :
Lwt_unix.file_descr -> Ssl.context -> Lwt_ssl.socket Lwt.t
val plain : Lwt_unix.file_descr -> Lwt_ssl.socket
val embed_socket : Lwt_unix.file_descr -> Ssl.context -> Lwt_ssl.socket
val read : Lwt_ssl.socket -> string -> int -> int -> int Lwt.t
val write : Lwt_ssl.socket -> string -> int -> int -> int Lwt.t
val read_bytes : Lwt_ssl.socket -> Lwt_bytes.t -> int -> int -> int Lwt.t
val write_bytes : Lwt_ssl.socket -> Lwt_bytes.t -> int -> int -> int Lwt.t
val wait_read : Lwt_ssl.socket -> unit Lwt.t
val wait_write : Lwt_ssl.socket -> unit Lwt.t
val shutdown : Lwt_ssl.socket -> Unix.shutdown_command -> unit
val close : Lwt_ssl.socket -> unit Lwt.t
val out_channel_of_descr : Lwt_ssl.socket -> Lwt_chan.out_channel
val in_channel_of_descr : Lwt_ssl.socket -> Lwt_chan.in_channel
val ssl_shutdown : Lwt_ssl.socket -> unit Lwt.t
val abort : Lwt_ssl.socket -> exn -> unit
val is_ssl : Lwt_ssl.socket -> bool
val getsockname : Lwt_ssl.socket -> Unix.sockaddr
val getpeername : Lwt_ssl.socket -> Unix.sockaddr
end`