sig
  type t = Pervasives.in_channel
  val stdin : In_channel.t
  type 'a with_create_args = ?binary:bool -> 'a
  val create : (string -> In_channel.t) In_channel.with_create_args
  val with_file :
    (string -> f:(In_channel.t -> 'a) -> 'a) In_channel.with_create_args
  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 -> int64 -> unit
  val pos : In_channel.t -> int64
  val length : In_channel.t -> int64
  val set_binary_mode : In_channel.t -> bool -> unit
  val read_lines : string -> string list
end