sig
type input = {
pos_in : unit -> int64;
seek_in : int64 -> unit;
input_char : unit -> char;
input_byte : unit -> int;
in_channel_length : unit -> int64;
set_offset : int64 -> unit;
}
type output = {
pos_out : unit -> int64;
seek_out : int64 -> unit;
output_char : char -> unit;
output_byte : int -> unit;
out_channel_length : unit -> int64;
}
exception EndOfInput
exception EndOfOutput
val output_of_stream : Utility.stream -> Io.output
val output_of_channel : Pervasives.out_channel -> Io.output
val input_of_channel : Pervasives.in_channel -> Io.input
val input_of_stream : Utility.stream -> Io.input
val input_of_bytestream : Utility.bytestream -> Io.input
val nudge : Io.input -> unit
val rewind : Io.input -> unit
val peek_char : Io.input -> char
val peek_byte : Io.input -> int
val output_string : Io.output -> string -> unit
val read_char_back : Io.input -> char
val read_line : Io.input -> string
val bytestream_of_input_channel :
Pervasives.in_channel -> Utility.bytestream
val bytestream_to_output_channel :
Pervasives.out_channel -> Utility.bytestream -> unit
type bitstream
val bitstream_of_input : Io.input -> Io.bitstream
val getbit : Io.bitstream -> bool
val getbitint : Io.bitstream -> int
val align : Io.bitstream -> unit
val getval_32 : Io.bitstream -> int -> int32
type bitstream_write
val make_write_bitstream : unit -> Io.bitstream_write
val print_bitstream : Io.bitstream_write -> unit
val bytestream_of_write_bitstream :
Io.bitstream_write -> Utility.bytestream
val putbit : Io.bitstream_write -> int -> unit
val putbool : Io.bitstream_write -> bool -> unit
val putval : Io.bitstream_write -> int -> int32 -> unit
val align_write : Io.bitstream_write -> unit
val write_bitstream_append :
Io.bitstream_write -> Io.bitstream_write -> Io.bitstream_write
val write_bitstream_append_aligned :
Io.bitstream_write -> Io.bitstream_write -> Io.bitstream_write
val join_write_bitstreams : Io.bitstream_write list -> Io.bitstream_write
val input_in_bitstream : Io.bitstream -> Io.input
end