sig
  exception Connect_timeout
  val with_connection :
    ?timeout:Core.Std.Time.Span.t ->
    host:string ->
    port:int ->
    f:(Core.Std.In_channel.t -> Core.Std.Out_channel.t -> 'a) -> unit -> 'a
  val ounit_tests : unit -> OUnit.test
end