Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data PmExpr
- data PmLit
- type SimpleEq = (Id, PmExpr)
- type ComplexEq = (PmExpr, PmExpr)
- toComplex :: SimpleEq -> ComplexEq
- eqPmLit :: PmLit -> PmLit -> Bool
- truePmExpr :: PmExpr
- falsePmExpr :: PmExpr
- isTruePmExpr :: PmExpr -> Bool
- isFalsePmExpr :: PmExpr -> Bool
- isNotPmExprOther :: PmExpr -> Bool
- lhsExprToPmExpr :: LHsExpr GhcTc -> PmExpr
- hsExprToPmExpr :: HsExpr GhcTc -> PmExpr
- substComplexEq :: Name -> PmExpr -> ComplexEq -> Either ComplexEq ComplexEq
- filterComplex :: [ComplexEq] -> [PmNegLitCt]
- pprPmExprWithParens :: PmExpr -> PmPprM SDoc
- runPmPprM :: PmPprM a -> [PmNegLitCt] -> (a, [(SDoc, [PmLit])])
Documentation
Lifted expressions for pattern match checking.
Literals (simple and overloaded ones) for pattern match checking.
truePmExpr :: PmExpr Source #
Expression True
falsePmExpr :: PmExpr Source #
Expression False
isFalsePmExpr :: PmExpr -> Bool Source #
Check whether a PmExpr is syntactically equal to term False
.
isNotPmExprOther :: PmExpr -> Bool Source #
Check if an expression is lifted or not
substComplexEq :: Name -> PmExpr -> ComplexEq -> Either ComplexEq ComplexEq Source #
Substitute in a complex equality. We return (Left eq) if the substitution affected the equality or (Right eq) if nothing happened.
filterComplex :: [ComplexEq] -> [PmNegLitCt] Source #
pprPmExprWithParens :: PmExpr -> PmPprM SDoc Source #