Module Transfer_functions.Term
type boolean = private
| TypeBoolean
type integer = private
| TypeInteger
type binary = private
| TypeBinary
type memory = private
| TypeMemory
type 'a ar1 = private
| Ar1
type ('a, 'b) ar2 = private
| Ar2
type ('arg, 'ret) term =
| True : (ar0, boolean) term
| False : (ar0, boolean) term
| And : ((boolean, boolean) ar2, boolean) term
| Or : ((boolean, boolean) ar2, boolean) term
| Not : (boolean ar1, boolean) term
| BoolUnion : ((boolean, boolean) ar2, boolean) term
| Biconst : size * Z.t -> (ar0, binary) term
| Biadd : {
size : size;
nsw : bool;
nuw : bool;
nusw : bool;
} -> ((binary, binary) ar2, binary) term
| Bisub : {
size : size;
nsw : bool;
nuw : bool;
nusw : bool;
} -> ((binary, binary) ar2, binary) term
| Bimul : {
size : size;
nsw : bool;
nuw : bool;
} -> ((binary, binary) ar2, binary) term
| Biudiv : size -> ((binary, binary) ar2, binary) term
| Bisdiv : size -> ((binary, binary) ar2, binary) term
| Biumod : size -> ((binary, binary) ar2, binary) term
| Bismod : size -> ((binary, binary) ar2, binary) term
| Bshl : {
size : size;
nsw : bool;
nuw : bool;
} -> ((binary, binary) ar2, binary) term
| Bashr : size -> ((binary, binary) ar2, binary) term
| Blshr : size -> ((binary, binary) ar2, binary) term
| Band : size -> ((binary, binary) ar2, binary) term
| Bor : size -> ((binary, binary) ar2, binary) term
| Bxor : size -> ((binary, binary) ar2, binary) term
| Beq : size -> ((binary, binary) ar2, boolean) term
| Bisle : size -> ((binary, binary) ar2, boolean) term
| Biule : size -> ((binary, binary) ar2, boolean) term
| Bconcat : size * size -> ((binary, binary) ar2, binary) term
| Bsext : size -> (binary ar1, binary) term
| Buext : size -> (binary ar1, binary) term
| Bofbool : size -> (boolean ar1, binary) term
| Bunion : int * size -> ((binary, binary) ar2, binary) term
| Bchoose : int * size -> (binary ar1, binary) term
| Iconst : Z.t -> (ar0, integer) term
| Iadd : ((integer, integer) ar2, integer) term
| Isub : ((integer, integer) ar2, integer) term
| Imul : ((integer, integer) ar2, integer) term
| Idiv : ((integer, integer) ar2, integer) term
| Imod : ((integer, integer) ar2, integer) term
| Ishl : ((integer, integer) ar2, integer) term
| Ishr : ((integer, integer) ar2, integer) term
| Ior : ((integer, integer) ar2, integer) term
| Ixor : ((integer, integer) ar2, integer) term
| Iand : ((integer, integer) ar2, integer) term
| Ieq : ((integer, integer) ar2, boolean) term
| Ile : ((integer, integer) ar2, boolean) term
| Itimes : Z.t -> (integer ar1, integer) term
module Build : sig ... end
val type_of : ('a, 'b) term -> 'b typ
val hash : ('a, 'b) term -> int
val equal : ('a, 'b) term -> ('c, 'd) term -> bool