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"     [@@unboxed] [@@noalloc]   external sqrt : float -> float = "caml_sqrt_float" "sqrt" [@@unboxed]     [@@noalloc]   external exp : float -> float = "caml_exp_float" "exp" [@@unboxed]     [@@noalloc]   external log : float -> float = "caml_log_float" "log" [@@unboxed]     [@@noalloc]   external log10 : float -> float = "caml_log10_float" "log10" [@@unboxed]     [@@noalloc]   external expm1 : float -> float = "caml_expm1_float" "caml_expm1"     [@@unboxed] [@@noalloc]   external log1p : float -> float = "caml_log1p_float" "caml_log1p"     [@@unboxed] [@@noalloc]   external cos : float -> float = "caml_cos_float" "cos" [@@unboxed]     [@@noalloc]   external sin : float -> float = "caml_sin_float" "sin" [@@unboxed]     [@@noalloc]   external tan : float -> float = "caml_tan_float" "tan" [@@unboxed]     [@@noalloc]   external acos : float -> float = "caml_acos_float" "acos" [@@unboxed]     [@@noalloc]   external asin : float -> float = "caml_asin_float" "asin" [@@unboxed]     [@@noalloc]   external atan : float -> float = "caml_atan_float" "atan" [@@unboxed]     [@@noalloc]   external atan2 : float -> float -> float = "caml_atan2_float" "atan2"     [@@unboxed] [@@noalloc]   external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"     [@@unboxed] [@@noalloc]   external cosh : float -> float = "caml_cosh_float" "cosh" [@@unboxed]     [@@noalloc]   external sinh : float -> float = "caml_sinh_float" "sinh" [@@unboxed]     [@@noalloc]   external tanh : float -> float = "caml_tanh_float" "tanh" [@@unboxed]     [@@noalloc]   external ceil : float -> float = "caml_ceil_float" "ceil" [@@unboxed]     [@@noalloc]   external floor : float -> float = "caml_floor_float" "floor" [@@unboxed]     [@@noalloc]   external abs_float : float -> float = "%absfloat"   external copysign : float -> float -> float = "caml_copysign_float"     "caml_copysign" [@@unboxed] [@@noalloc]   external mod_float : float -> float -> float = "caml_fmod_float" "fmod"     [@@unboxed] [@@noalloc]   external frexp : float -> float * int = "caml_frexp_float"   external ldexp :     (float [@unboxed]) -> (int [@untagged]) -> (float [@unboxed])     = "caml_ldexp_float" "caml_ldexp_float_unboxed" [@@noalloc]   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 [@unboxed]) -> Pervasives.fpclass     = "caml_classify_float" "caml_classify_float_unboxed" [@@noalloc]   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"   type ('a, 'b) result = Ok of '| Error of 'b   type ('a, 'b, 'c, 'd, 'e, 'f) format6 =       ('a, 'b, 'c, 'd, 'e, 'f) 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