Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
This module contains functions for removing information from the AST of the intermediate language.
These functions are useful to simplify tests or make the output of pretty instances actually pretty by removing irrelevant information.
Synopsis
- class StripExprType node where
- stripExprType :: node -> node
Removing Expression Type Annotations
class StripExprType node where Source #
Type class for AST nodes from which expression type annotations can be removed.
stripExprType :: node -> node Source #
Instances
StripExprType Expr Source # | Strips the type annotation of the given expression and of its sub-expressions recursively. |
Defined in FreeC.IR.Strip stripExprType :: Expr -> Expr Source # | |
StripExprType FuncDecl Source # | Strips the expression type annotations from function declarations. |
Defined in FreeC.IR.Strip stripExprType :: FuncDecl -> FuncDecl Source # | |
StripExprType TopLevelDecl Source # | Strips the expression type annotations from top-level function declarations. |
Defined in FreeC.IR.Strip | |
StripExprType node => StripExprType [node] Source # | When expression type annotations can be removed from a node, they can also be removed from a list of those nodes. |
Defined in FreeC.IR.Strip stripExprType :: [node] -> [node] Source # | |
StripExprType contents => StripExprType (ModuleOf contents) Source # | Strips the expression type annotations from all declarations in a module. |
Defined in FreeC.IR.Strip stripExprType :: ModuleOf contents -> ModuleOf contents Source # |