sig
  type t = Stdlib.in_channel
  type open_flag =
    Stdlib.open_flag =
      Open_rdonly
    | Open_wronly
    | Open_append
    | Open_creat
    | Open_trunc
    | Open_excl
    | Open_binary
    | Open_text
    | Open_nonblock
  val stdin : In_channel.t
  val open_bin : string -> In_channel.t
  val open_text : string -> In_channel.t
  val open_gen : In_channel.open_flag list -> int -> string -> In_channel.t
  val with_open_bin : string -> (In_channel.t -> 'a) -> 'a
  val with_open_text : string -> (In_channel.t -> 'a) -> 'a
  val with_open_gen :
    In_channel.open_flag list -> int -> string -> (In_channel.t -> 'a) -> 'a
  val close : In_channel.t -> unit
  val close_noerr : In_channel.t -> unit
  val input_char : In_channel.t -> char option
  val input_byte : In_channel.t -> int option
  val input_line : In_channel.t -> string option
  val really_input_string : In_channel.t -> int -> string option
  val input_all : In_channel.t -> string
  val input_lines : In_channel.t -> string list
  val input : In_channel.t -> bytes -> int -> int -> int
  val input_bigarray :
    In_channel.t ->
    ('a, Stdlib.Bigarray.int8_unsigned_elt, Stdlib.Bigarray.c_layout)
    Stdlib.Bigarray.Array1.t -> int -> int -> int
  val really_input : In_channel.t -> bytes -> int -> int -> unit option
  val really_input_bigarray :
    In_channel.t ->
    ('a, Stdlib.Bigarray.int8_unsigned_elt, Stdlib.Bigarray.c_layout)
    Stdlib.Bigarray.Array1.t -> int -> int -> unit option
  val fold_lines : ('acc -> string -> 'acc) -> 'acc -> In_channel.t -> 'acc
  val seek : In_channel.t -> int64 -> unit
  val pos : In_channel.t -> int64
  val length : In_channel.t -> int64
  val set_binary_mode : In_channel.t -> bool -> unit
  val is_binary_mode : In_channel.t -> bool
  val isatty : In_channel.t -> bool
end