sig
  type in_channel
  type out_channel
  exception IO_error of string
  exception Data_error
  exception Unexpected_EOF
  val version : string
  external open_in :
    ?small:bool -> ?unused:string -> Pervasives.in_channel -> Bz.in_channel
    = "mlbz_readopen"
  external read : Bz.in_channel -> buf:string -> pos:int -> len:int -> int
    = "mlbz_read"
  external read_get_unused : Bz.in_channel -> string = "mlbz_readgetunused"
  external close_in : Bz.in_channel -> unit = "mlbz_readclose"
  external open_out : ?block:int -> Pervasives.out_channel -> Bz.out_channel
    = "mlbz_writeopen"
  external write : Bz.out_channel -> buf:string -> pos:int -> len:int -> unit
    = "mlbz_write"
  external close_out : Bz.out_channel -> unit = "mlbz_writeclose"
  external compress : ?block:int -> string -> pos:int -> len:int -> string
    = "mlbz_compress"
  external uncompress : ?small:bool -> string -> pos:int -> len:int -> string
    = "mlbz_uncompress"
end