sig
  val input_lines : Pervasives.in_channel -> string BatEnum.t
  val input_chars : Pervasives.in_channel -> char BatEnum.t
  val input_list : Pervasives.in_channel -> string list
  val input_all : Pervasives.in_channel -> string
  val print_bool : bool -> unit
  val prerr_bool : bool -> unit
  val input_file : ?bin:bool -> string -> string
  val output_file : filename:string -> text:string -> unit
  val string_of_char : char -> string
  external identity : 'a -> 'a = "%identity"
  val unique : unit -> int
  val dump : 'a -> string
  val print : 'a -> unit
  val finally : (unit -> unit) -> ('a -> 'b) -> 'a -> 'b
  val args : unit -> string BatEnum.t
  val invisible_args : int Pervasives.ref
  val exe : string
  val ( |> ) : 'a -> ('a -> 'b) -> 'b
  val ( <| ) : ('a -> 'b) -> 'a -> 'b
  val ( |- ) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
  val ( -| ) : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b
  val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
  val ( *** ) : ('a -> 'b) -> ('c -> 'd) -> 'a * 'c -> 'b * 'd
  val ( &&& ) : ('a -> 'b) -> ('a -> 'c) -> 'a -> 'b * 'c
  val first : ('a -> 'b * 'c) -> 'a -> 'b
  val second : ('a -> 'b * 'c) -> 'a -> 'c
  val curry : ('a * 'b -> 'c) -> 'a -> 'b -> 'c
  val uncurry : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
  val const : 'a -> 'b -> 'a
  val tap : ('a -> unit) -> 'a -> 'a
  type ('a, 'b) result = Ok of 'a | Bad of 'b
  val ignore_ok : ('a, exn) BatStd.result -> unit
  val ok : ('a, exn) BatStd.result -> 'a
  val wrap : ('a -> 'b) -> 'a -> ('b, exn) BatStd.result
end