sig
  external raise : exn -> 'a = "%raise"
  external raise_notrace : exn -> 'a = "%raise_notrace"
  val invalid_arg : string -> 'a
  val failwith : string -> 'a
  exception Exit
  external ( = ) : '-> '-> bool = "%equal"
  external ( <> ) : '-> '-> bool = "%notequal"
  external ( < ) : '-> '-> bool = "%lessthan"
  external ( > ) : '-> '-> bool = "%greaterthan"
  external ( <= ) : '-> '-> bool = "%lessequal"
  external ( >= ) : '-> '-> bool = "%greaterequal"
  external compare : '-> '-> int = "%compare"
  val min : '-> '-> 'a
  val max : '-> '-> 'a
  external ( == ) : '-> '-> bool = "%eq"
  external ( != ) : '-> '-> bool = "%noteq"
  external not : bool -> bool = "%boolnot"
  external ( && ) : bool -> bool -> bool = "%sequand"
  external ( & ) : bool -> bool -> bool = "%sequand"
  external ( || ) : bool -> bool -> bool = "%sequor"
  external ( or ) : bool -> bool -> bool = "%sequor"
  external __LOC__ : string = "%loc_LOC"
  external __FILE__ : string = "%loc_FILE"
  external __LINE__ : int = "%loc_LINE"
  external __MODULE__ : string = "%loc_MODULE"
  external __POS__ : string * int * int * int = "%loc_POS"
  external __LOC_OF__ : '-> string * 'a = "%loc_LOC"
  external __LINE_OF__ : '-> int * 'a = "%loc_LINE"
  external __POS_OF__ : '-> (string * int * int * int) * 'a = "%loc_POS"
  external ( |> ) : '-> ('-> 'b) -> 'b = "%revapply"
  external ( @@ ) : ('-> 'b) -> '-> 'b = "%apply"
  external ( ~- ) : int -> int = "%negint"
  external ( ~+ ) : int -> int = "%identity"
  external succ : int -> int = "%succint"
  external pred : int -> int = "%predint"
  external ( + ) : int -> int -> int = "%addint"
  external ( - ) : int -> int -> int = "%subint"
  external ( * ) : int -> int -> int = "%mulint"
  external ( / ) : int -> int -> int = "%divint"
  external ( mod ) : int -> int -> int = "%modint"
  val abs : int -> int
  val max_int : int
  val min_int : int
  external ( land ) : int -> int -> int = "%andint"
  external ( lor ) : int -> int -> int = "%orint"
  external ( lxor ) : int -> int -> int = "%xorint"
  val lnot : int -> int
  external ( lsl ) : int -> int -> int = "%lslint"
  external ( lsr ) : int -> int -> int = "%lsrint"
  external ( asr ) : int -> int -> int = "%asrint"
  external ( ~-. ) : float -> float = "%negfloat"
  external ( ~+. ) : float -> float = "%identity"
  external ( +. ) : float -> float -> float = "%addfloat"
  external ( -. ) : float -> float -> float = "%subfloat"
  external ( *. ) : float -> float -> float = "%mulfloat"
  external ( /. ) : float -> float -> float = "%divfloat"
  external ( ** ) : float -> float -> float = "caml_power_float" "pow"
    "float"
  external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
  external exp : float -> float = "caml_exp_float" "exp" "float"
  external log : float -> float = "caml_log_float" "log" "float"
  external log10 : float -> float = "caml_log10_float" "log10" "float"
  external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
  external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
  external cos : float -> float = "caml_cos_float" "cos" "float"
  external sin : float -> float = "caml_sin_float" "sin" "float"
  external tan : float -> float = "caml_tan_float" "tan" "float"
  external acos : float -> float = "caml_acos_float" "acos" "float"
  external asin : float -> float = "caml_asin_float" "asin" "float"
  external atan : float -> float = "caml_atan_float" "atan" "float"
  external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
    "float"
  external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
    "float"
  external cosh : float -> float = "caml_cosh_float" "cosh" "float"
  external sinh : float -> float = "caml_sinh_float" "sinh" "float"
  external tanh : float -> float = "caml_tanh_float" "tanh" "float"
  external ceil : float -> float = "caml_ceil_float" "ceil" "float"
  external floor : float -> float = "caml_floor_float" "floor" "float"
  external abs_float : float -> float = "%absfloat"
  external copysign : float -> float -> float = "caml_copysign_float"
    "caml_copysign" "float"
  external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
    "float"
  external frexp : float -> float * int = "caml_frexp_float"
  external ldexp : float -> int -> float = "caml_ldexp_float"
  external modf : float -> float * float = "caml_modf_float"
  external float : int -> float = "%floatofint"
  external float_of_int : int -> float = "%floatofint"
  external truncate : float -> int = "%intoffloat"
  external int_of_float : float -> int = "%intoffloat"
  val infinity : float
  val neg_infinity : float
  val nan : float
  val max_float : float
  val min_float : float
  val epsilon_float : float
  type fpclass = FP_normal | FP_subnormal | FP_zero | FP_infinite | FP_nan
  external classify_float : float -> Pervasives.fpclass
    = "caml_classify_float"
  val ( ^ ) : string -> string -> string
  external int_of_char : char -> int = "%identity"
  val char_of_int : int -> char
  external ignore : '-> unit = "%ignore"
  val string_of_bool : bool -> string
  val bool_of_string : string -> bool
  val string_of_int : int -> string
  external int_of_string : string -> int = "caml_int_of_string"
  val string_of_float : float -> string
  external float_of_string : string -> float = "caml_float_of_string"
  external fst : 'a * '-> 'a = "%field0"
  external snd : 'a * '-> 'b = "%field1"
  val ( @ ) : 'a list -> 'a list -> 'a list
  type in_channel
  type out_channel
  val stdin : Pervasives.in_channel
  val stdout : Pervasives.out_channel
  val stderr : Pervasives.out_channel
  val print_char : char -> unit
  val print_string : string -> unit
  val print_bytes : bytes -> unit
  val print_int : int -> unit
  val print_float : float -> unit
  val print_endline : string -> unit
  val print_newline : unit -> unit
  val prerr_char : char -> unit
  val prerr_string : string -> unit
  val prerr_bytes : bytes -> unit
  val prerr_int : int -> unit
  val prerr_float : float -> unit
  val prerr_endline : string -> unit
  val prerr_newline : unit -> unit
  val read_line : unit -> string
  val read_int : unit -> int
  val read_float : unit -> float
  type open_flag =
      Open_rdonly
    | Open_wronly
    | Open_append
    | Open_creat
    | Open_trunc
    | Open_excl
    | Open_binary
    | Open_text
    | Open_nonblock
  val open_out : string -> Pervasives.out_channel
  val open_out_bin : string -> Pervasives.out_channel
  val open_out_gen :
    Pervasives.open_flag list -> int -> string -> Pervasives.out_channel
  val flush : Pervasives.out_channel -> unit
  val flush_all : unit -> unit
  val output_char : Pervasives.out_channel -> char -> unit
  val output_string : Pervasives.out_channel -> string -> unit
  val output_bytes : Pervasives.out_channel -> bytes -> unit
  val output : Pervasives.out_channel -> bytes -> int -> int -> unit
  val output_substring :
    Pervasives.out_channel -> string -> int -> int -> unit
  val output_byte : Pervasives.out_channel -> int -> unit
  val output_binary_int : Pervasives.out_channel -> int -> unit
  val output_value : Pervasives.out_channel -> '-> unit
  val seek_out : Pervasives.out_channel -> int -> unit
  val pos_out : Pervasives.out_channel -> int
  val out_channel_length : Pervasives.out_channel -> int
  val close_out : Pervasives.out_channel -> unit
  val close_out_noerr : Pervasives.out_channel -> unit
  val set_binary_mode_out : Pervasives.out_channel -> bool -> unit
  val open_in : string -> Pervasives.in_channel
  val open_in_bin : string -> Pervasives.in_channel
  val open_in_gen :
    Pervasives.open_flag list -> int -> string -> Pervasives.in_channel
  val input_char : Pervasives.in_channel -> char
  val input_line : Pervasives.in_channel -> string
  val input : Pervasives.in_channel -> bytes -> int -> int -> int
  val really_input : Pervasives.in_channel -> bytes -> int -> int -> unit
  val really_input_string : Pervasives.in_channel -> int -> string
  val input_byte : Pervasives.in_channel -> int
  val input_binary_int : Pervasives.in_channel -> int
  val input_value : Pervasives.in_channel -> 'a
  val seek_in : Pervasives.in_channel -> int -> unit
  val pos_in : Pervasives.in_channel -> int
  val in_channel_length : Pervasives.in_channel -> int
  val close_in : Pervasives.in_channel -> unit
  val close_in_noerr : Pervasives.in_channel -> unit
  val set_binary_mode_in : Pervasives.in_channel -> bool -> unit
  module LargeFile :
    sig
      val seek_out : Pervasives.out_channel -> int64 -> unit
      val pos_out : Pervasives.out_channel -> int64
      val out_channel_length : Pervasives.out_channel -> int64
      val seek_in : Pervasives.in_channel -> int64 -> unit
      val pos_in : Pervasives.in_channel -> int64
      val in_channel_length : Pervasives.in_channel -> int64
    end
  type 'a ref = { mutable contents : 'a; }
  external ref : '-> 'Pervasives.ref = "%makemutable"
  external ( ! ) : 'Pervasives.ref -> 'a = "%field0"
  external ( := ) : 'Pervasives.ref -> '-> unit = "%setfield0"
  external incr : int Pervasives.ref -> unit = "%incr"
  external decr : int Pervasives.ref -> unit = "%decr"
  module CamlinternalFormatBasics :
    sig
      type block_type =
          Pp_hbox
        | Pp_vbox
        | Pp_hvbox
        | Pp_hovbox
        | Pp_box
        | Pp_fits
      type formatting =
          Open_box of string *
            Pervasives.CamlinternalFormatBasics.block_type * int
        | Close_box
        | Open_tag of string * string
        | Close_tag
        | Break of string * int * int
        | FFlush
        | Force_newline
        | Flush_newline
        | Magic_size of string * int
        | Escaped_at
        | Escaped_percent
        | Scan_indic of char
      type padty = Left | Right | Zeros
      type int_conv =
          Int_d
        | Int_pd
        | Int_sd
        | Int_i
        | Int_pi
        | Int_si
        | Int_x
        | Int_Cx
        | Int_X
        | Int_CX
        | Int_o
        | Int_Co
        | Int_u
      type float_conv =
          Float_f
        | Float_pf
        | Float_sf
        | Float_e
        | Float_pe
        | Float_se
        | Float_E
        | Float_pE
        | Float_sE
        | Float_g
        | Float_pg
        | Float_sg
        | Float_G
        | Float_pG
        | Float_sG
        | Float_F
      type char_set = string
      type counter = Line_counter | Char_counter | Token_counter
      type ('a, 'b) padding =
          No_padding : ('a, 'a) Pervasives.CamlinternalFormatBasics.padding
        | Lit_padding : Pervasives.CamlinternalFormatBasics.padty *
            int -> ('a, 'a) Pervasives.CamlinternalFormatBasics.padding
        | Arg_padding :
            Pervasives.CamlinternalFormatBasics.padty -> (int -> 'a, 'a)
                                                         Pervasives.CamlinternalFormatBasics.padding
      type pad_option = int option
      type ('a, 'b) precision =
          No_precision :
            ('a, 'a) Pervasives.CamlinternalFormatBasics.precision
        | Lit_precision :
            int -> ('a, 'a) Pervasives.CamlinternalFormatBasics.precision
        | Arg_precision :
            (int -> 'a, 'a) Pervasives.CamlinternalFormatBasics.precision
      type prec_option = int option
      type ('d1, 'e1, 'd2, 'e2) reader_nb_unifier =
          Zero_reader :
            ('d1, 'd1, 'd2, 'd2)
            Pervasives.CamlinternalFormatBasics.reader_nb_unifier
        | Succ_reader :
            ('d1, 'e1, 'd2, 'e2)
            Pervasives.CamlinternalFormatBasics.reader_nb_unifier -> 
            ('-> 'd1, 'e1, '-> 'd2, 'e2)
            Pervasives.CamlinternalFormatBasics.reader_nb_unifier
      type ('a, 'b, 'c, 'd, 'e, 'f) fmtty =
          Char_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (char -> 'a, 'b, 'c,
                                                          'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | String_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (string -> 'a, 'b,
                                                          'c, 'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Int_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (int -> 'a, 'b, 'c,
                                                          'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Int32_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (int32 -> 'a, 'b,
                                                          'c, 'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Nativeint_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (nativeint -> 'a,
                                                          'b, 'c, 'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Int64_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (int64 -> 'a, 'b,
                                                          'c, 'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Float_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (float -> 'a, 'b,
                                                          'c, 'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Bool_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (bool -> 'a, 'b, 'c,
                                                          'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Format_arg_ty :
            ('g, 'h, 'i, 'j, 'k, 'l)
            Pervasives.CamlinternalFormatBasics.fmtty *
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (('g, 'h, 'i, 'j,
                                                           'k, 'l)
                                                          Pervasives.CamlinternalFormatBasics.format6 ->
                                                          'a, 'b, 'c, 'd, 'e,
                                                          'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Format_subst_ty :
            ('d1, 'q1, 'd2, 'q2)
            Pervasives.CamlinternalFormatBasics.reader_nb_unifier *
            ('x, 'b, 'c, 'd1, 'q1, 'u)
            Pervasives.CamlinternalFormatBasics.fmtty *
            ('u, 'b, 'c, 'q1, 'e1, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (('x, 'b, 'c, 'd2,
                                                           'q2, 'u)
                                                          Pervasives.CamlinternalFormatBasics.format6 ->
                                                          'x, 'b, 'c, 'd1,
                                                          'e1, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Alpha_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (('-> '-> 'c) ->
                                                          '-> 'a, 'b, 'c,
                                                          'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Theta_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> (('-> 'c) -> 'a,
                                                          'b, 'c, 'd, 'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Reader_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> ('-> 'a, 'b, 'c,
                                                          ('-> 'x) -> 'd,
                                                          'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | Ignored_reader_ty :
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> ('a, 'b, 'c,
                                                          ('-> 'x) -> 'd,
                                                          'e, 'f)
                                                         Pervasives.CamlinternalFormatBasics.fmtty
        | End_of_fmtty :
            ('f, 'b, 'c, 'd, 'd, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty
      and ('a, 'b, 'c, 'd, 'e, 'f) fmt =
          Char :
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (char -> 'a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Caml_char :
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (char -> 'a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | String :
            ('x, string -> 'a) Pervasives.CamlinternalFormatBasics.padding *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('x, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Caml_string :
            ('x, string -> 'a) Pervasives.CamlinternalFormatBasics.padding *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('x, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Int : Pervasives.CamlinternalFormatBasics.int_conv *
            ('x, 'y) Pervasives.CamlinternalFormatBasics.padding *
            ('y, int -> 'a) Pervasives.CamlinternalFormatBasics.precision *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('x, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Int32 : Pervasives.CamlinternalFormatBasics.int_conv *
            ('x, 'y) Pervasives.CamlinternalFormatBasics.padding *
            ('y, int32 -> 'a) Pervasives.CamlinternalFormatBasics.precision *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('x, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Nativeint : Pervasives.CamlinternalFormatBasics.int_conv *
            ('x, 'y) Pervasives.CamlinternalFormatBasics.padding *
            ('y, nativeint -> 'a)
            Pervasives.CamlinternalFormatBasics.precision *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('x, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Int64 : Pervasives.CamlinternalFormatBasics.int_conv *
            ('x, 'y) Pervasives.CamlinternalFormatBasics.padding *
            ('y, int64 -> 'a) Pervasives.CamlinternalFormatBasics.precision *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('x, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Float : Pervasives.CamlinternalFormatBasics.float_conv *
            ('x, 'y) Pervasives.CamlinternalFormatBasics.padding *
            ('y, float -> 'a) Pervasives.CamlinternalFormatBasics.precision *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('x, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Bool :
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (bool -> 'a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Flush :
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | String_literal : string *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Char_literal : char *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Format_arg : Pervasives.CamlinternalFormatBasics.pad_option *
            ('g, 'h, 'i, 'j, 'k, 'l)
            Pervasives.CamlinternalFormatBasics.fmtty *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (('g, 'h, 'i, 'j, 'k, 'l)
             Pervasives.CamlinternalFormatBasics.format6 -> 'a, 'b, 'c, 'd,
             'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Format_subst : Pervasives.CamlinternalFormatBasics.pad_option *
            ('d1, 'q1, 'd2, 'q2)
            Pervasives.CamlinternalFormatBasics.reader_nb_unifier *
            ('x, 'b, 'c, 'd1, 'q1, 'u)
            Pervasives.CamlinternalFormatBasics.fmtty *
            ('u, 'b, 'c, 'q1, 'e1, 'f)
            Pervasives.CamlinternalFormatBasics.fmt -> (('x, 'b, 'c, 'd2,
                                                         'q2, 'u)
                                                        Pervasives.CamlinternalFormatBasics.format6 ->
                                                        'x, 'b, 'c, 'd1, 'e1,
                                                        'f)
                                                       Pervasives.CamlinternalFormatBasics.fmt
        | Alpha :
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (('-> '-> 'c) -> '-> 'a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Theta :
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (('-> 'c) -> 'a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Formatting : Pervasives.CamlinternalFormatBasics.formatting *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | Reader :
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('-> 'a, 'b, 'c, ('-> 'x) -> 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Scan_char_set : Pervasives.CamlinternalFormatBasics.pad_option *
            Pervasives.CamlinternalFormatBasics.char_set *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (string -> 'a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Scan_get_counter : Pervasives.CamlinternalFormatBasics.counter *
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            (int -> 'a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmt
        | Ignored_param :
            ('a, 'b, 'c, 'd, 'y, 'x)
            Pervasives.CamlinternalFormatBasics.ignored *
            ('x, 'b, 'c, 'y, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt -> 
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
        | End_of_format :
            ('f, 'b, 'c, 'e, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt
      and ('a, 'b, 'c, 'd, 'e, 'f) ignored =
          Ignored_char :
            ('a, 'b, 'c, 'd, 'd, 'a)
            Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_caml_char :
            ('a, 'b, 'c, 'd, 'd, 'a)
            Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_string :
            Pervasives.CamlinternalFormatBasics.pad_option -> ('a, 'b, 'c,
                                                               'd, 'd, 'a)
                                                              Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_caml_string :
            Pervasives.CamlinternalFormatBasics.pad_option -> ('a, 'b, 'c,
                                                               'd, 'd, 'a)
                                                              Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_int : Pervasives.CamlinternalFormatBasics.int_conv *
            Pervasives.CamlinternalFormatBasics.pad_option -> ('a, 'b, 'c,
                                                               'd, 'd, 'a)
                                                              Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_int32 : Pervasives.CamlinternalFormatBasics.int_conv *
            Pervasives.CamlinternalFormatBasics.pad_option -> ('a, 'b, 'c,
                                                               'd, 'd, 'a)
                                                              Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_nativeint : Pervasives.CamlinternalFormatBasics.int_conv *
            Pervasives.CamlinternalFormatBasics.pad_option -> ('a, 'b, 'c,
                                                               'd, 'd, 'a)
                                                              Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_int64 : Pervasives.CamlinternalFormatBasics.int_conv *
            Pervasives.CamlinternalFormatBasics.pad_option -> ('a, 'b, 'c,
                                                               'd, 'd, 'a)
                                                              Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_float : Pervasives.CamlinternalFormatBasics.pad_option *
            Pervasives.CamlinternalFormatBasics.prec_option -> ('a, 'b, 'c,
                                                                'd, 'd, 'a)
                                                               Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_bool :
            ('a, 'b, 'c, 'd, 'd, 'a)
            Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_format_arg :
            Pervasives.CamlinternalFormatBasics.pad_option *
            ('x, 'b, 'c, 'y, 'z, 't)
            Pervasives.CamlinternalFormatBasics.fmtty -> ('a, 'b, 'c, 'd, 'd,
                                                          'a)
                                                         Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_format_subst :
            Pervasives.CamlinternalFormatBasics.pad_option *
            ('a, 'b, 'c, 'd, 'e, 'f)
            Pervasives.CamlinternalFormatBasics.fmtty -> ('a, 'b, 'c, 'd, 'e,
                                                          'f)
                                                         Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_reader :
            ('a, 'b, 'c, ('-> 'x) -> 'd, 'd, 'a)
            Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_scan_char_set :
            Pervasives.CamlinternalFormatBasics.pad_option *
            Pervasives.CamlinternalFormatBasics.char_set -> ('a, 'b, 'c, 'd,
                                                             'd, 'a)
                                                            Pervasives.CamlinternalFormatBasics.ignored
        | Ignored_scan_get_counter :
            Pervasives.CamlinternalFormatBasics.counter -> ('a, 'b, 'c, 'd,
                                                            'd, 'a)
                                                           Pervasives.CamlinternalFormatBasics.ignored
      and ('a, 'b, 'c, 'd, 'e, 'f) format6 =
          Format of
            ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt *
            string
      val concat_fmtty :
        ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmtty ->
        ('f, 'b, 'c, 'e, 'g, 'h) Pervasives.CamlinternalFormatBasics.fmtty ->
        ('a, 'b, 'c, 'd, 'g, 'h) Pervasives.CamlinternalFormatBasics.fmtty
      val concat_fmt :
        ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.fmt ->
        ('f, 'b, 'c, 'e, 'g, 'h) Pervasives.CamlinternalFormatBasics.fmt ->
        ('a, 'b, 'c, 'd, 'g, 'h) Pervasives.CamlinternalFormatBasics.fmt
    end
  type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
      ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.CamlinternalFormatBasics.format6
  type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) Pervasives.format6
  type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) Pervasives.format4
  val string_of_format :
    ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.format6 -> string
  external format_of_string :
    ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.format6 ->
    ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.format6 = "%identity"
  val ( ^^ ) :
    ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.format6 ->
    ('f, 'b, 'c, 'e, 'g, 'h) Pervasives.format6 ->
    ('a, 'b, 'c, 'd, 'g, 'h) Pervasives.format6
  val exit : int -> 'a
  val at_exit : (unit -> unit) -> unit
  val valid_float_lexem : string -> string
  val unsafe_really_input :
    Pervasives.in_channel -> bytes -> int -> int -> unit
  val do_at_exit : unit -> unit
end