Safe Haskell | None |
---|---|
Language | Haskell2010 |
Representation used by the simplification engine.
Synopsis
- data Wise rep
- newtype VarWisdom = VarWisdom {}
- data ExpWisdom
- removeStmWisdom :: CanBeWise (Op rep) => Stm (Wise rep) -> Stm rep
- removeLambdaWisdom :: CanBeWise (Op rep) => Lambda (Wise rep) -> Lambda rep
- removeFunDefWisdom :: CanBeWise (Op rep) => FunDef (Wise rep) -> FunDef rep
- removeExpWisdom :: CanBeWise (Op rep) => Exp (Wise rep) -> Exp rep
- removePatWisdom :: Pat (VarWisdom, a) -> Pat a
- removeBodyWisdom :: CanBeWise (Op rep) => Body (Wise rep) -> Body rep
- removeScopeWisdom :: Scope (Wise rep) -> Scope rep
- addScopeWisdom :: Scope rep -> Scope (Wise rep)
- addWisdomToPat :: (ASTRep rep, CanBeWise (Op rep)) => Pat (LetDec rep) -> Exp (Wise rep) -> Pat (LetDec (Wise rep))
- mkWiseBody :: (ASTRep rep, CanBeWise (Op rep)) => BodyDec rep -> Stms (Wise rep) -> Result -> Body (Wise rep)
- mkWiseLetStm :: (ASTRep rep, CanBeWise (Op rep)) => Pat (LetDec rep) -> StmAux (ExpDec rep) -> Exp (Wise rep) -> Stm (Wise rep)
- mkWiseExpDec :: (ASTRep rep, CanBeWise (Op rep)) => Pat (LetDec (Wise rep)) -> ExpDec rep -> Exp (Wise rep) -> ExpDec (Wise rep)
- class (AliasedOp (OpWithWisdom op), IsOp (OpWithWisdom op)) => CanBeWise op where
- type OpWithWisdom op :: Type
- removeOpWisdom :: OpWithWisdom op -> op
- addOpWisdom :: op -> OpWithWisdom op
- type Informing rep = (ASTRep rep, CanBeWise (Op rep))
- informLambda :: Informing rep => Lambda rep -> Lambda (Wise rep)
- informFunDef :: Informing rep => FunDef rep -> FunDef (Wise rep)
- informStms :: Informing rep => Stms rep -> Stms (Wise rep)
Documentation
Instances
The wisdom of the let-bound variable.
Instances
Wisdom about an expression.
Instances
Eq ExpWisdom Source # | |
Ord ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Rep | |
Show ExpWisdom Source # | |
FreeDec ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Rep | |
FreeIn ExpWisdom Source # | |
Substitute ExpWisdom Source # | |
Defined in Futhark.Optimise.Simplify.Rep | |
Rename ExpWisdom Source # | |
addWisdomToPat :: (ASTRep rep, CanBeWise (Op rep)) => Pat (LetDec rep) -> Exp (Wise rep) -> Pat (LetDec (Wise rep)) Source #
mkWiseBody :: (ASTRep rep, CanBeWise (Op rep)) => BodyDec rep -> Stms (Wise rep) -> Result -> Body (Wise rep) Source #
mkWiseLetStm :: (ASTRep rep, CanBeWise (Op rep)) => Pat (LetDec rep) -> StmAux (ExpDec rep) -> Exp (Wise rep) -> Stm (Wise rep) Source #
mkWiseExpDec :: (ASTRep rep, CanBeWise (Op rep)) => Pat (LetDec (Wise rep)) -> ExpDec rep -> Exp (Wise rep) -> ExpDec (Wise rep) Source #
class (AliasedOp (OpWithWisdom op), IsOp (OpWithWisdom op)) => CanBeWise op where Source #
type OpWithWisdom op :: Type Source #
removeOpWisdom :: OpWithWisdom op -> op Source #
addOpWisdom :: op -> OpWithWisdom op Source #