sig
  type t = Pervasives.in_channel
  val stdin : In_channel.t
  val create : ?binary:bool -> string -> In_channel.t
  val close : In_channel.t -> unit
  val close_noerr : In_channel.t -> unit
  val input : In_channel.t -> buf:string -> pos:int -> len:int -> int
  val really_input :
    In_channel.t -> buf:string -> pos:int -> len:int -> unit option
  val input_byte : In_channel.t -> int option
  val input_char : In_channel.t -> char option
  val input_binary_int : In_channel.t -> int option
  val input_value : In_channel.t -> 'a option
  val input_all : In_channel.t -> string
  val input_line : ?fix_win_eol:bool -> In_channel.t -> string option
  val fold_lines :
    ?fix_win_eol:bool ->
    In_channel.t -> init:'-> f:('-> string -> 'a) -> 'a
  val input_lines : ?fix_win_eol:bool -> In_channel.t -> string list
  val iter_lines :
    ?fix_win_eol:bool -> In_channel.t -> f:(string -> unit) -> unit
  val seek : In_channel.t -> int -> unit
  val pos : In_channel.t -> int
  val length : In_channel.t -> int
  val set_binary_mode : In_channel.t -> bool -> unit
end