sig
  type buffer
  val buffer : int -> Aio.buffer
  val get_string : Aio.buffer -> int -> string
  val put_string : Aio.buffer -> string -> unit
  val rewind : Aio.buffer -> unit
  type result
  exception Error of int
  exception Incomplete of Aio.buffer * int
  val result : Aio.result -> Aio.buffer
  type context
  val context : int -> Aio.context
  val read :
    Aio.context ->
    Unix.file_descr -> Aio.buffer -> int64 -> (Aio.result -> unit) -> unit
  val write :
    Aio.context ->
    Unix.file_descr -> Aio.buffer -> int64 -> (Aio.result -> unit) -> unit
  val run : Aio.context -> unit
end