Documentation
Equality for expressions. The difference between Eq
and ExprEq
is that
ExprEq
allows comparison of expressions with different value types. It is
assumed that when the types differ, the expressions also differ. The reason
for allowing comparison of different types is that this is convenient when
the types are existentially quantified.
ExprEq Literal | |
ExprEq PrimFunc | |
ExprEq Condition | |
ExprEq Select | |
ExprEq Tuple | |
ExprEq Let | |
ExprEq Lambda | Strict identifier comparison; i.e. no alpha equivalence |
ExprEq Variable | Strict identifier comparison; i.e. no alpha equivalence |
ExprEq dom => ExprEq (AST dom) | |
(ExprEq expr1, ExprEq expr2) => ExprEq (:+: expr1 expr2) | |
ExprEq expr => ExprEq (Ann info expr) |