Module Transfer_functions.Term

type boolean = private
  1. | TypeBoolean
type integer = private
  1. | TypeInteger
type binary = private
  1. | TypeBinary
type memory = private
  1. | TypeMemory
type ar0 = private
  1. | Ar0
type 'a ar1 = private
  1. | Ar1
type ('a, 'b) ar2 = private
  1. | Ar2
type size = int
type 'a typ =
  1. | Boolean : boolean typ
  2. | Integer : integer typ
  3. | Binary : size -> binary typ
  4. | Memory : memory typ
type id = private int
type any_type =
  1. | Any_type : 'a typ -> any_type
type ('arg, 'ret) term =
  1. | True : (ar0, boolean) term
  2. | False : (ar0, boolean) term
  3. | And : ((boolean, boolean) ar2, boolean) term
  4. | Or : ((boolean, boolean) ar2, boolean) term
  5. | Not : (boolean ar1, boolean) term
  6. | BoolUnion : ((boolean, boolean) ar2, boolean) term
  7. | Biconst : size * Z.t -> (ar0, binary) term
  8. | Biadd : {
    1. size : size;
    2. nsw : bool;
    3. nuw : bool;
    4. nusw : bool;
    } -> ((binary, binary) ar2, binary) term
  9. | Bisub : {
    1. size : size;
    2. nsw : bool;
    3. nuw : bool;
    4. nusw : bool;
    } -> ((binary, binary) ar2, binary) term
  10. | Bimul : {
    1. size : size;
    2. nsw : bool;
    3. nuw : bool;
    } -> ((binary, binary) ar2, binary) term
  11. | Biudiv : size -> ((binary, binary) ar2, binary) term
  12. | Bisdiv : size -> ((binary, binary) ar2, binary) term
  13. | Biumod : size -> ((binary, binary) ar2, binary) term
  14. | Bismod : size -> ((binary, binary) ar2, binary) term
  15. | Bshl : {
    1. size : size;
    2. nsw : bool;
    3. nuw : bool;
    } -> ((binary, binary) ar2, binary) term
  16. | Bashr : size -> ((binary, binary) ar2, binary) term
  17. | Blshr : size -> ((binary, binary) ar2, binary) term
  18. | Band : size -> ((binary, binary) ar2, binary) term
  19. | Bor : size -> ((binary, binary) ar2, binary) term
  20. | Bxor : size -> ((binary, binary) ar2, binary) term
  21. | Beq : size -> ((binary, binary) ar2, boolean) term
  22. | Bisle : size -> ((binary, binary) ar2, boolean) term
  23. | Biule : size -> ((binary, binary) ar2, boolean) term
  24. | Bconcat : size * size -> ((binary, binary) ar2, binary) term
  25. | Bextract : {
    1. size : size;
    2. index : int;
    3. oldsize : size;
    } -> (binary ar1, binary) term
  26. | Bsext : size -> (binary ar1, binary) term
  27. | Buext : size -> (binary ar1, binary) term
  28. | Bofbool : size -> (boolean ar1, binary) term
  29. | Bunion : int * size -> ((binary, binary) ar2, binary) term
  30. | Bchoose : int * size -> (binary ar1, binary) term
  31. | Iconst : Z.t -> (ar0, integer) term
  32. | Iadd : ((integer, integer) ar2, integer) term
  33. | Isub : ((integer, integer) ar2, integer) term
  34. | Imul : ((integer, integer) ar2, integer) term
  35. | Idiv : ((integer, integer) ar2, integer) term
  36. | Imod : ((integer, integer) ar2, integer) term
  37. | Ishl : ((integer, integer) ar2, integer) term
  38. | Ishr : ((integer, integer) ar2, integer) term
  39. | Ior : ((integer, integer) ar2, integer) term
  40. | Ixor : ((integer, integer) ar2, integer) term
  41. | Iand : ((integer, integer) ar2, integer) term
  42. | Ieq : ((integer, integer) ar2, boolean) term
  43. | Ile : ((integer, integer) ar2, boolean) term
  44. | 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
module type Pretty_Arg = sig ... end
module type Pretty_Result = sig ... end
module Pretty (M : Pretty_Arg) : Pretty_Result with type 'a t = 'a M.t and type 'a pack = 'a M.pack