syntactic-0.2: Generic abstract syntax, and utilities for embedded languages

Language.Syntactic.Analysis.Equality

Synopsis

Documentation

class ExprEq expr whereSource

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.

Methods

exprEq :: expr a -> expr b -> BoolSource

Instances

ExprEq Literal 
ExprEq PrimFunc 
ExprEq Condition 
ExprEq Select 
ExprEq Tuple 
ExprEq Let 
ExprEq dom => ExprEq (AST dom) 
(ExprEq expr1, ExprEq expr2) => ExprEq (:+: expr1 expr2) 
ExprEq expr => ExprEq (Ann info expr) 

eqSyn :: (Syntactic a dom, ExprEq dom) => a -> a -> BoolSource