sig
  val with_connection :
    ?interrupt:unit Import.Deferred.t ->
    ?timeout:Core.Std.Time.Span.t ->
    ?max_buffer_age:Core.Std.Time.Span.t ->
    host:string ->
    port:int ->
    (Import.Reader.t -> Import.Writer.t -> 'Import.Deferred.t) ->
    'Import.Deferred.t
  val connect_sock :
    host:string ->
    port:int ->
    ([ `Active ], Import.Socket.inet) Import.Socket.t Import.Deferred.t
  val connect_sock_unix :
    file:string ->
    ([ `Active ], Import.Socket.unix) Import.Socket.t Import.Deferred.t
  val connect :
    ?max_buffer_age:Core.Std.Time.Span.t ->
    ?interrupt:unit Import.Deferred.t ->
    ?timeout:Core.Std.Time.Span.t ->
    ?reader_buffer_size:int ->
    host:string ->
    port:int -> unit -> (Import.Reader.t * Import.Writer.t) Import.Deferred.t
  val connect_unix :
    ?max_buffer_age:Core.Std.Time.Span.t ->
    ?interrupt:unit Import.Deferred.t ->
    ?timeout:Core.Std.Time.Span.t ->
    ?reader_buffer_size:int ->
    file:string ->
    unit -> (Import.Reader.t * Import.Writer.t) Import.Deferred.t
  val serve :
    ?max_connections:int ->
    ?max_pending_connections:int ->
    ?max_buffer_age:Core.Std.Time.Span.t ->
    port:int ->
    on_handler_error:[ `Call of Import.Socket.inet -> exn -> unit
                     | `Ignore
                     | `Raise ] ->
    (Import.Socket.inet ->
     Import.Reader.t -> Import.Writer.t -> unit Import.Deferred.t) ->
    unit Import.Deferred.t
  val serve_unix :
    ?max_connections:int ->
    ?max_pending_connections:int ->
    ?max_buffer_age:Core.Std.Time.Span.t ->
    file:string ->
    on_handler_error:[ `Call of Import.Socket.unix -> exn -> unit
                     | `Ignore
                     | `Raise ] ->
    (Import.Socket.unix ->
     Import.Reader.t -> Import.Writer.t -> unit Import.Deferred.t) ->
    unit Import.Deferred.t
  val ounit_tests : unit -> OUnit.test
end