Safe Haskell | Safe-Inferred |
---|
- class FoldDeclared a where
- foldDeclared :: forall r. (Maybe Name -> r -> r) -> r -> a -> r
- class FoldMembers a where
- foldMembers :: forall r. (Maybe Name -> r -> r) -> r -> a -> r
- symbols :: FoldDeclared a => a -> Set (Maybe Name)
- members :: FoldMembers a => a -> Set (Maybe Name)
- exports :: (FoldDeclared a, FoldMembers a) => a -> [ExportSpec]
- imports :: (FoldDeclared a, FoldMembers a) => a -> [ImportSpec]
Documentation
class FoldDeclared a whereSource
Do a fold over the names that are declared in a declaration (not every name that appears, just the ones that the declaration is causing to exist - what's the word for that? Reify!)
foldDeclared :: forall r. (Maybe Name -> r -> r) -> r -> a -> rSource
FoldDeclared (QName a) | |
FoldDeclared (Name l) | |
FoldDeclared (ExportSpec l) | |
FoldDeclared (ImportSpec l) | |
FoldDeclared (Decl a) | |
FoldDeclared (DeclHead a) | |
FoldDeclared (InstHead a) | |
FoldDeclared (Match a) | |
FoldDeclared (QualConDecl l) | |
FoldDeclared (ConDecl l) | |
FoldDeclared (FieldDecl l) | |
FoldDeclared (GadtDecl l) | |
FoldDeclared (ClassDecl a) | |
FoldDeclared (Pat a) | |
FoldDeclared (RPat a) | |
FoldDeclared (PatField a) |
class FoldMembers a whereSource
Fold over the declared members - e.g. the method names of a class declaration, the constructors of a data declaration.
foldMembers :: forall r. (Maybe Name -> r -> r) -> r -> a -> rSource
FoldMembers (Decl a) |
exports :: (FoldDeclared a, FoldMembers a) => a -> [ExportSpec]Source
imports :: (FoldDeclared a, FoldMembers a) => a -> [ImportSpec]Source