Expr.Make
Create an expression domain with the given variable type, provide smart constructors for it and manage the hashconsing
module Var : Std_extra.Types.TYPE
type var = Var.t
include Std_extra.Types.TYPE with type t = var expr
include Std_extra.Types.PRINTABLE with type t = var expr
val pp : t Std_extra.Types.pp
val order : t -> t -> Std_extra.Types.order
val hash : t -> int
module Set : Std_extra.PatriciaTree.Set_S with type elt = var expr
module Map : Std_extra.PatriciaTree.Map_S with type key = var expr
Constructors: These build hashconsed expressions. They also immediatly evaluate constant expressions, so binop PlusA one one
is turned into 2
.