- data Annotation = Annotation {}
- data AnnTarget name
- = NamedTarget name
- | ModuleTarget Module
- type CoreAnnTarget = AnnTarget Name
- getAnnTargetName_maybe :: AnnTarget name -> Maybe name
- data AnnEnv
- mkAnnEnv :: [Annotation] -> AnnEnv
- extendAnnEnvList :: AnnEnv -> [Annotation] -> AnnEnv
- plusAnnEnv :: AnnEnv -> AnnEnv -> AnnEnv
- emptyAnnEnv :: AnnEnv
- findAnns :: Typeable a => ([Word8] -> a) -> AnnEnv -> CoreAnnTarget -> [a]
- deserializeAnns :: Typeable a => ([Word8] -> a) -> AnnEnv -> UniqFM [a]
Main Annotation data types
data Annotation Source
Represents an annotation after it has been sufficiently desugared from
it's initial form of HsDecls.AnnDecl
Annotation | |
|
An annotation target
NamedTarget name | We are annotating something with a name: a type or identifier |
ModuleTarget Module | We are annotating a particular module |
type CoreAnnTarget = AnnTarget NameSource
The kind of annotation target found in the middle end of the compiler
getAnnTargetName_maybe :: AnnTarget name -> Maybe nameSource
AnnEnv for collecting and querying Annotations
mkAnnEnv :: [Annotation] -> AnnEnvSource
extendAnnEnvList :: AnnEnv -> [Annotation] -> AnnEnvSource
plusAnnEnv :: AnnEnv -> AnnEnv -> AnnEnvSource