Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- class Equality expr where
- equalDefault :: Semantic expr => expr a -> expr b -> Bool
- exprHashDefault :: Semantic expr => expr a -> Hash
Documentation
class Equality expr where Source #
Equality for expressions
equal :: expr a -> expr b -> Bool Source #
Equality for expressions
Comparing expressions of different types is often needed when dealing with expressions with existentially quantified sub-terms.
exprHash :: expr a -> Hash Source #
Computes a Hash
for an expression. Expressions that are equal
according to equal
must result in the same hash:
equal a b ==> exprHash a == exprHash b
equal :: Semantic expr => expr a -> expr b -> Bool Source #
Equality for expressions
Comparing expressions of different types is often needed when dealing with expressions with existentially quantified sub-terms.
Instances
Equality Semantics Source # | |
Equality Empty Source # | |
Equality Tuple Source # | |
Equality Select Source # | |
Equality Literal Source # | |
Equality Identity Source # | |
Equality Construct Source # | |
Equality Condition Source # | |
Equality Let Source # | |
Equality Lambda Source # |
|
Equality Variable Source # |
|
Equality dom => Equality (AST dom) Source # | |
Monad m => Equality (MONAD m) Source # | |
(Equality expr1, Equality expr2) => Equality (expr1 :+: expr2) Source # | |
Equality dom => Equality (dom :|| pred) Source # | |
Equality dom => Equality (dom :| pred) Source # | |
Equality expr => Equality (Decor info expr) Source # | |
Equality dom => Equality (SubConstr1 c dom p) Source # | |
Defined in Language.Syntactic.Constraint equal :: SubConstr1 c dom p a -> SubConstr1 c dom p b -> Bool Source # exprHash :: SubConstr1 c dom p a -> Hash Source # | |
Equality dom => Equality (SubConstr2 c dom pa pb) Source # | |
Defined in Language.Syntactic.Constraint equal :: SubConstr2 c dom pa pb a -> SubConstr2 c dom pa pb b -> Bool Source # exprHash :: SubConstr2 c dom pa pb a -> Hash Source # |