sig
  type t
  exception Socket_Not_Ready
  exception Socket_Disconnected
  exception Socket_Error
  val init : unit -> unit
  external create : unit -> SFTcpListener.t = "caml_sfTcpListener_create"
  external destroy : listener:SFTcpListener.t -> unit
    = "caml_sfTcpListener_destroy"
  external setBlocking : listener:SFTcpListener.t -> blocking:bool -> unit
    = "caml_sfTcpListener_setBlocking"
  external isBlocking : listener:SFTcpListener.t -> bool
    = "caml_sfTcpListener_isBlocking"
  external getLocalPort : listener:SFTcpListener.t -> int
    = "caml_sfTcpListener_getLocalPort"
  external listen : listener:SFTcpListener.t -> port:int -> unit
    = "caml_sfTcpListener_listen"
  external accept : listener:SFTcpListener.t -> SFTcpSocket.t
    = "caml_sfTcpListener_accept"
  val link_me : unit
end