sig
type error = EndOfFile | IntOfString | SysError of string
type world
type ('left, 'right) either
type 'a t = Io.world -> (Io.error, 'a) Io.either * Io.world
val __conjure_up : unit -> Io.world
val bind : 'a Io.t -> ('a -> 'b Io.t) -> 'b Io.t
val return : 'a -> 'a Io.t
val throw : Io.error -> 'a Io.t
val catch : 'a Io.t -> (Io.error -> 'a Io.t) -> 'a Io.t
val print_char : char -> unit Io.t
val print_string : string -> unit Io.t
val print_int : int -> unit Io.t
val print_float : float -> unit Io.t
val print_endline : string -> unit Io.t
val print_newline : unit -> unit Io.t
val prerr_char : char -> unit Io.t
val prerr_string : string -> unit Io.t
val prerr_int : int -> unit Io.t
val prerr_float : float -> unit Io.t
val prerr_endline : string -> unit Io.t
val prerr_newline : unit -> unit Io.t
val read_line : unit -> string Io.t
val read_int : unit -> int Io.t
val read_float : unit -> float Io.t
val open_out : string -> Stdlib.out_channel Io.t
val output_char : Stdlib.out_channel -> char -> unit Io.t
val output_string : Stdlib.out_channel -> string -> unit Io.t
val close_out : Stdlib.out_channel -> unit Io.t
end