sig
  val input_lines : Stdlib.Pervasives.in_channel -> string BatEnum.t
  val input_chars : Stdlib.Pervasives.in_channel -> char BatEnum.t
  val input_list : Stdlib.Pervasives.in_channel -> string list
  val input_all : Stdlib.Pervasives.in_channel -> string
  val dump : '-> string
  val print_any : 'BatIO.output -> '-> unit
  val ( @ ) : 'a list -> 'a list -> 'a list
  val stdin : BatIO.input
  val stdout : unit BatIO.output
  val stderr : unit BatIO.output
  val stdnull : unit BatIO.output
  val flush_all : unit -> unit
  val print_bool : bool -> unit
  val print_guess : 'BatIO.output -> '-> unit
  val print_all : BatIO.input -> unit
  val prerr_bool : bool -> unit
  val prerr_guess : '-> unit
  val prerr_all : BatIO.input -> unit
  val output_file : filename:string -> text:string -> unit
  val open_out :
    ?mode:BatFile.open_out_flag list ->
    ?perm:BatFile.permission -> string -> unit BatIO.output
  val open_out_bin : string -> unit BatIO.output
  val open_out_gen :
    Stdlib.open_flag list -> int -> string -> unit BatIO.output
  val flush : unit BatIO.output -> unit
  val output_char : unit BatIO.output -> char -> unit
  val output_string : unit BatIO.output -> string -> unit
  val output : unit BatIO.output -> Stdlib.Bytes.t -> int -> int -> unit
  val output_substring : unit BatIO.output -> string -> int -> int -> unit
  val output_byte : unit BatIO.output -> int -> unit
  val output_binary_int : unit BatIO.output -> int -> unit
  val output_binary_float : unit BatIO.output -> float -> unit
  val output_value : unit BatIO.output -> '-> unit
  val close_out : unit BatIO.output -> unit
  val close_out_noerr : unit BatIO.output -> unit
  val input_file : ?bin:bool -> string -> string
  val open_in :
    ?mode:BatFile.open_in_flag list ->
    ?perm:BatFile.permission -> string -> BatIO.input
  val open_in_bin : string -> BatIO.input
  val open_in_gen : Stdlib.open_flag list -> int -> string -> BatIO.input
  val input_char : BatIO.input -> char
  val input_line : BatIO.input -> string
  val input : BatIO.input -> Stdlib.Bytes.t -> int -> int -> int
  val really_input : BatIO.input -> Stdlib.Bytes.t -> int -> int -> unit
  val input_byte : BatIO.input -> int
  val input_binary_int : BatIO.input -> int
  val input_binary_float : BatIO.input -> float
  val input_value : BatIO.input -> 'a
  val close_in : BatIO.input -> unit
  val close_in_noerr : BatIO.input -> unit
  external identity : '-> 'a = "%identity"
  val undefined : ?message:string -> '-> 'b
  external ( @@ ) : ('-> 'b) -> '-> 'b = "%apply"
  val ( % ) : ('-> 'b) -> ('-> 'a) -> '-> 'b
  external ( |> ) : '-> ('-> 'b) -> 'b = "%revapply"
  val ( %> ) : ('-> 'b) -> ('-> 'c) -> '-> 'c
  val ( |? ) : 'a option -> '-> 'a
  val flip : ('-> '-> 'c) -> '-> '-> 'c
  val curry : ('a * '-> 'c) -> '-> '-> 'c
  val uncurry : ('-> '-> 'c) -> 'a * '-> 'c
  val neg : ('-> bool) -> '-> bool
  val neg2 : ('-> '-> bool) -> '-> '-> bool
  val const : '-> '-> 'a
  val unique : unit -> int
  val tap : ('-> unit) -> '-> 'a
  val finally : (unit -> unit) -> ('-> 'b) -> '-> 'b
  val with_dispose : dispose:('-> unit) -> ('-> 'b) -> '-> 'b
  val forever : ('-> 'b) -> '-> unit
  val ignore_exceptions : ('-> 'b) -> '-> unit
  val verify_arg : bool -> string -> unit
  val args : unit -> string BatEnum.t
  val invisible_args : int Stdlib.ref
  val exe : string
  val foreach : 'BatEnum.t -> ('-> unit) -> unit
  val iter : ('-> unit) -> 'BatEnum.t -> unit
  val map : ('-> 'b) -> 'BatEnum.t -> 'BatEnum.t
  val filter_map : ('-> 'b option) -> 'BatEnum.t -> 'BatEnum.t
  val reduce : ('-> '-> 'a) -> 'BatEnum.t -> 'a
  val fold : ('-> '-> 'b) -> '-> 'BatEnum.t -> 'b
  val scanl : ('-> '-> 'b) -> '-> 'BatEnum.t -> 'BatEnum.t
  val ( /@ ) : 'BatEnum.t -> ('-> 'b) -> 'BatEnum.t
  val ( @/ ) : ('-> 'b) -> 'BatEnum.t -> 'BatEnum.t
  val ( //@ ) : 'BatEnum.t -> ('-> 'b option) -> 'BatEnum.t
  val ( @// ) : ('-> 'b option) -> 'BatEnum.t -> 'BatEnum.t
  val exists : ('-> bool) -> 'BatEnum.t -> bool
  val for_all : ('-> bool) -> 'BatEnum.t -> bool
  val find : ('-> bool) -> 'BatEnum.t -> 'a
  val peek : 'BatEnum.t -> 'a option
  val get : 'BatEnum.t -> 'a option
  val push : 'BatEnum.t -> '-> unit
  val junk : 'BatEnum.t -> unit
  val filter : ('-> bool) -> 'BatEnum.t -> 'BatEnum.t
  val ( // ) : 'BatEnum.t -> ('-> bool) -> 'BatEnum.t
  val concat : 'BatEnum.t BatEnum.t -> 'BatEnum.t
  val ( -- ) : int -> int -> int BatEnum.t
  val ( --^ ) : int -> int -> int BatEnum.t
  val ( --. ) : float * float -> float -> float BatEnum.t
  val ( --- ) : int -> int -> int BatEnum.t
  val ( --~ ) : char -> char -> char BatEnum.t
  val print :
    ?first:string ->
    ?last:string ->
    ?sep:string ->
    ('BatInnerIO.output -> '-> unit) ->
    'BatInnerIO.output -> 'BatEnum.t -> unit
  type ('a, 'e) result =
    ('a, 'e) BatInnerPervasives.result =
      Ok of 'a
    | Error of 'e
  val ignore_ok : ('a, exn) BatPervasives.result -> unit
  val ok : ('a, exn) BatPervasives.result -> 'a
  val wrap : ('-> 'b) -> '-> ('b, exn) BatPervasives.result
  val lock : BatConcurrent.lock Stdlib.ref
end