package malfunction

  1. Overview
  2. Docs
type inttype = [
  1. | `Int
  2. | `Int32
  3. | `Int64
  4. | `Bigint
]
type numtype = [
  1. | inttype
  2. | `Float64
]
type numconst = [
  1. | `Int of int
  2. | `Int32 of Int32.t
  3. | `Int64 of Int64.t
  4. | `Bigint of Z.t
  5. | `Float64 of float
]
type unary_num_op = [
  1. | `Neg
  2. | `Not
]
type binary_arith_op = [
  1. | `Add
  2. | `Sub
  3. | `Mul
  4. | `Div
  5. | `Mod
]
type binary_bitwise_op = [
  1. | `And
  2. | `Or
  3. | `Xor
  4. | `Lsl
  5. | `Lsr
  6. | `Asr
]
type binary_comparison = [
  1. | `Lt
  2. | `Gt
  3. | `Lte
  4. | `Gte
  5. | `Eq
]
type vector_type = [
  1. | `Array
  2. | `Bytevec
]
type mutability = [
  1. | `Imm
  2. | `Mut
]
type block_tag = private int
type case = [
  1. | `Tag of int
  2. | `Deftag
  3. | `Intrange of int * int
]
val max_tag : block_tag
val tag_of_int : int -> block_tag
type var = Ident.t
val fresh : string -> var
type t =
  1. | Mvar of var
  2. | Mlambda of var list * t
  3. | Mapply of t * t list
  4. | Mlet of binding list * t
  5. | Mnum of numconst
  6. | Mstring of string
  7. | Mglobal of Longident.t
  8. | Mswitch of t * (case list * t) list
  9. | Mnumop1 of unary_num_op * numtype * t
  10. | Mnumop2 of binary_num_op * numtype * t * t
  11. | Mconvert of numtype * numtype * t
  12. | Mvecnew of vector_type * t * t
  13. | Mvecget of vector_type * t * t
  14. | Mvecset of vector_type * t * t * t
  15. | Mveclen of vector_type * t
  16. | Mlazy of t
  17. | Mforce of t
  18. | Mblock of int * t list
  19. | Mfield of int * t
and binding = [
  1. | `Unnamed of t
  2. | `Named of var * t
  3. | `Recursive of (var * t) list
]
val bind_val : t -> (t -> t) -> t
val bind_rec : (t -> t) -> (t -> t) -> t
val tuple : t list -> t
val lambda : (t -> t) -> t
val lambda2 : (t -> t -> t) -> t
val if_ : t -> t -> t -> t
module IntArith : sig ... end
val with_error_reporting : Format.formatter -> 'a -> (unit -> 'a) -> 'a