ghc-7.2.2: The GHC API




Main Annotation data types

data Annotation Source

Represents an annotation after it has been sufficiently desugared from it's initial form of HsDecls.AnnDecl




ann_target :: CoreAnnTarget

The target of the annotation

ann_value :: Serialized

Serialized version of the annotation that allows recovery of its value or can be persisted to an interface file

data AnnTarget name Source

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

AnnEnv for collecting and querying Annotations

data AnnEnv Source

A collection of annotations

findAnns :: Typeable a => ([Word8] -> a) -> AnnEnv -> CoreAnnTarget -> [a]Source

Find the annotations attached to the given target as Typeable values of your choice. If no deserializer is specified, only transient annotations will be returned.

deserializeAnns :: Typeable a => ([Word8] -> a) -> AnnEnv -> UniqFM [a]Source

Deserialize all annotations of a given type. This happens lazily, that is no deserialization will take place until the [a] is actually demanded and the [a] can also be empty (the UniqFM is not filtered).