ghc-7.2.2: The GHC API

Annotations

Contents

Synopsis

Main Annotation data types

data Annotation Source

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

Constructors

Annotation 

Fields

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

Constructors

NamedTarget name

We are annotating something with a name: a type or identifier

ModuleTarget Module

We are annotating a particular module

Instances

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).