sig
  val uppercase : string -> string
  val lowercase : string -> string
  val string_of_char : char -> string
  val dump : '-> string
  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 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 :
    Pervasives.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_rope : unit BatIO.output -> BatRope.t -> unit
  val output : 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_value : unit BatIO.output -> '-> unit
  val close_out : unit BatIO.output -> unit
  val close_out_noerr : unit BatIO.output -> unit
  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 : Pervasives.open_flag list -> int -> string -> BatIO.input
  val input_char : BatIO.input -> char
  val input_line : BatIO.input -> string
  val input : BatIO.input -> string -> int -> int -> int
  val really_input : BatIO.input -> string -> int -> int -> unit
  val input_byte : BatIO.input -> int
  val input_binary_int : BatIO.input -> int
  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
  val ( |> ) : '-> ('-> 'b) -> 'b
  val ( **> ) : ('-> 'b) -> '-> 'b
  val ( |- ) : ('-> 'b) -> ('-> 'c) -> '-> 'c
  val ( -| ) : ('-> 'b) -> ('-> 'a) -> '-> 'b
  val flip : ('-> '-> 'c) -> '-> '-> 'c
  val ( *** ) : ('-> 'b) -> ('-> 'd) -> 'a * '-> 'b * 'd
  val ( &&& ) : ('-> 'b) -> ('-> 'c) -> '-> 'b * 'c
  val first : ('-> 'b) -> 'a * '-> 'b * 'c
  val second : ('-> 'b) -> 'c * '-> 'c * 'b
  val curry : ('a * '-> 'c) -> '-> '-> 'c
  val uncurry : ('-> '-> 'c) -> 'a * '-> 'c
  val const : '-> '-> 'a
  val unique : unit -> int
  val finally : (unit -> unit) -> ('-> 'b) -> '-> 'b
  val args : unit -> string BatEnum.t
  val invisible_args : int Pervasives.ref
  val exe : string
  val foreach : 'BatEnum.t -> ('-> unit) -> unit
  val iter : ('-> unit) -> 'BatEnum.t -> unit
  val map : ('-> 'b) -> 'BatEnum.t -> 'BatEnum.t
  val reduce : ('-> '-> 'a) -> 'BatEnum.t -> 'a
  val fold : ('-> '-> 'a) -> '-> 'BatEnum.t -> 'a
  val scanl : ('-> '-> 'a) -> '-> 'BatEnum.t -> 'BatEnum.t
  val ( /@ ) : 'BatEnum.t -> ('-> 'b) -> 'BatEnum.t
  val ( @/ ) : ('-> 'b) -> '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 printer_flags = {
    pf_width : int option;
    pf_padding_char : char;
    pf_justify : [ `left | `right ];
    pf_positive_prefix : char option;
  }
  val default_printer_flags : BatPervasives.printer_flags
  val printer_a :
    ((unit BatIO.output -> '-> unit) -> '-> 'b, 'b) BatPrint.directive
  val printer_t : ((unit BatIO.output -> unit) -> 'a, 'a) BatPrint.directive
  val printer_B : (bool -> 'a, 'a) BatPrint.directive
  val printer_c : (char -> 'a, 'a) BatPrint.directive
  val printer_C : (char -> 'a, 'a) BatPrint.directive
  val printer_s :
    ?flags:BatPervasives.printer_flags ->
    (string -> 'a, 'a) BatPrint.directive
  val printer_S :
    ?flags:BatPervasives.printer_flags ->
    (string -> 'a, 'a) BatPrint.directive
  val printer_d :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_i :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_int :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_u :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_uint :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_x :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_X :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_hex :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_HEX :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_o :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_oct :
    ?flags:BatPervasives.printer_flags -> (int -> 'a, 'a) BatPrint.directive
  val printer_ld :
    ?flags:BatPervasives.printer_flags ->
    (int32 -> 'a, 'a) BatPrint.directive
  val printer_li :
    ?flags:BatPervasives.printer_flags ->
    (int32 -> 'a, 'a) BatPrint.directive
  val printer_lu :
    ?flags:BatPervasives.printer_flags ->
    (int32 -> 'a, 'a) BatPrint.directive
  val printer_lx :
    ?flags:BatPervasives.printer_flags ->
    (int32 -> 'a, 'a) BatPrint.directive
  val printer_lX :
    ?flags:BatPervasives.printer_flags ->
    (int32 -> 'a, 'a) BatPrint.directive
  val printer_lo :
    ?flags:BatPervasives.printer_flags ->
    (int32 -> 'a, 'a) BatPrint.directive
  val printer_Ld :
    ?flags:BatPervasives.printer_flags ->
    (int64 -> 'a, 'a) BatPrint.directive
  val printer_Li :
    ?flags:BatPervasives.printer_flags ->
    (int64 -> 'a, 'a) BatPrint.directive
  val printer_Lu :
    ?flags:BatPervasives.printer_flags ->
    (int64 -> 'a, 'a) BatPrint.directive
  val printer_Lx :
    ?flags:BatPervasives.printer_flags ->
    (int64 -> 'a, 'a) BatPrint.directive
  val printer_LX :
    ?flags:BatPervasives.printer_flags ->
    (int64 -> 'a, 'a) BatPrint.directive
  val printer_Lo :
    ?flags:BatPervasives.printer_flags ->
    (int64 -> 'a, 'a) BatPrint.directive
  val printer_nd :
    ?flags:BatPervasives.printer_flags ->
    (nativeint -> 'a, 'a) BatPrint.directive
  val printer_ni :
    ?flags:BatPervasives.printer_flags ->
    (nativeint -> 'a, 'a) BatPrint.directive
  val printer_nu :
    ?flags:BatPervasives.printer_flags ->
    (nativeint -> 'a, 'a) BatPrint.directive
  val printer_nx :
    ?flags:BatPervasives.printer_flags ->
    (nativeint -> 'a, 'a) BatPrint.directive
  val printer_nX :
    ?flags:BatPervasives.printer_flags ->
    (nativeint -> 'a, 'a) BatPrint.directive
  val printer_no :
    ?flags:BatPervasives.printer_flags ->
    (nativeint -> 'a, 'a) BatPrint.directive
  val printer_f : (float -> 'a, 'a) BatPrint.directive
  val printer_F : (float -> 'a, 'a) BatPrint.directive
  val printer_format :
    (('a, 'b) BatPrint.format -> 'a, 'b) BatPrint.directive
  val printer_sc :
    ?flags:BatPervasives.printer_flags ->
    ([> `Read ] BatString.Cap.t -> 'a, 'a) BatPrint.directive
  val printer_Sc :
    ?flags:BatPervasives.printer_flags ->
    ([> `Read ] BatString.Cap.t -> 'a, 'a) BatPrint.directive
  val printer_rope : (BatRope.t -> 'a, 'a) BatPrint.directive
  val printer_utf8 : (BatUTF8.t -> 'a, 'a) BatPrint.directive
  val printer_obj :
    (< print : unit BatIO.output -> unit; .. > -> 'a, 'a) BatPrint.directive
  val printer_exn : (exn -> 'a, 'a) BatPrint.directive
  val bool_printer : bool BatValue_printer.t
  val int_printer : int BatValue_printer.t
  val int32_printer : int32 BatValue_printer.t
  val int64_printer : int64 BatValue_printer.t
  val nativeint_printer : nativeint BatValue_printer.t
  val float_printer : float BatValue_printer.t
  val string_printer : string BatValue_printer.t
  val list_printer : 'BatValue_printer.t -> 'a list BatValue_printer.t
  val array_printer : 'BatValue_printer.t -> 'a array BatValue_printer.t
  val option_printer : 'BatValue_printer.t -> 'a option BatValue_printer.t
  val maybe_printer : 'BatValue_printer.t -> 'a option BatValue_printer.t
  val exn_printer : exn BatValue_printer.t
  type ('a, 'b) result = ('a, 'b) BatStd.result = Ok of '| Bad of 'b
  val lock : BatConcurrent.lock Pervasives.ref
end