`module Integer : sig ... end`
`type boxed_number =`

1. `| Int32`
2. `| Int64`
3. `| Nativeint`
4. `| Float`
5. `| Float32`

`type boxed_status =`

1. `| Boxed`
2. `| Unboxed`

`module Bigarray : sig ... end`
`type typ =`

1. `| Top`
2. `| Int of Integer.kind`
3. `| Number of boxed_number * boxed_status`
4. `| Tuple of typ array`
5. `| Bigarray of Bigarray.t`
6. `| Null`
7. `| Bot`

`val constant_type : Js_of_ocaml_compiler.Code.constant -> typ`
`val can_unbox_parameters : Call_graph_analysis.t -> Js_of_ocaml_compiler.Code.Var.t -> bool`
`val bigarray_element_type : Bigarray.kind -> typ`
`type t`
`val var_type : t -> Js_of_ocaml_compiler.Code.Var.t -> typ`
`val return_type : t -> Js_of_ocaml_compiler.Code.Var.t -> typ`
`val reset : unit -> unit`
`val register_prim : string -> unbox:bool -> typ -> unit`
`val f : global_flow_state:Js_of_ocaml_compiler.Global_flow.state -> global_flow_info:Js_of_ocaml_compiler.Global_flow.info -> fun_info:Call_graph_analysis.t -> deadcode_sentinel:Js_of_ocaml_compiler.Code.Var.t -> Js_of_ocaml_compiler.Code.program -> t`