<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Annotations</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Annotations.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ghc-6.12.3: The GHC API</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Annotations</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Main Annotation data types </A ></DT ><DT ><A HREF="#2" >AnnEnv for collecting and querying Annotations </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AAnnotation" >Annotation</A > = <A HREF="#v%3AAnnotation" >Annotation</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aann_target" >ann_target</A > :: <A HREF="Annotations.html#t%3ACoreAnnTarget" >CoreAnnTarget</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aann_value" >ann_value</A > :: <A HREF="Serialized.html#t%3ASerialized" >Serialized</A ></TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AAnnTarget" >AnnTarget</A > name </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ANamedTarget" >NamedTarget</A > name</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AModuleTarget" >ModuleTarget</A > <A HREF="Module.html#t%3AModule" >Module</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACoreAnnTarget" >CoreAnnTarget</A > = <A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A > <A HREF="Name.html#t%3AName" >Name</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetAnnTargetName_maybe" >getAnnTargetName_maybe</A > :: <A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A > name -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > name</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AAnnEnv" >AnnEnv</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkAnnEnv" >mkAnnEnv</A > :: [<A HREF="Annotations.html#t%3AAnnotation" >Annotation</A >] -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AextendAnnEnvList" >extendAnnEnvList</A > :: <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> [<A HREF="Annotations.html#t%3AAnnotation" >Annotation</A >] -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplusAnnEnv" >plusAnnEnv</A > :: <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AemptyAnnEnv" >emptyAnnEnv</A > :: <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfindAnns" >findAnns</A > :: <A HREF="../base-4.2.0.2/Data-Typeable.html#t%3ATypeable" >Typeable</A > a => ([<A HREF="../base-4.2.0.2/Data-Word.html#t%3AWord8" >Word8</A >] -> a) -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> <A HREF="Annotations.html#t%3ACoreAnnTarget" >CoreAnnTarget</A > -> [a]</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Main Annotation data types </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Annotation" ><A NAME="t%3AAnnotation" ></A ></A ><B >Annotation</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Represents an annotation after it has been sufficiently desugared from it's initial form of HsDecls.AnnDecl </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Annotation" ><A NAME="v%3AAnnotation" ></A ></A ><B >Annotation</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:ann_target" ><A NAME="v%3Aann_target" ></A ></A ><B >ann_target</B > :: <A HREF="Annotations.html#t%3ACoreAnnTarget" >CoreAnnTarget</A ></TD ><TD CLASS="rdoc" >The target of the annotation </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ann_value" ><A NAME="v%3Aann_value" ></A ></A ><B >ann_value</B > :: <A HREF="Serialized.html#t%3ASerialized" >Serialized</A ></TD ><TD CLASS="rdoc" ><TT ><A HREF="Serialized.html#t%3ASerialized" >Serialized</A ></TT > version of the annotation that allows recovery of its value or can be persisted to an interface file </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:AnnTarget" ><A NAME="t%3AAnnTarget" ></A ></A ><B >AnnTarget</B > name </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >An annotation target </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:NamedTarget" ><A NAME="v%3ANamedTarget" ></A ></A ><B >NamedTarget</B > name</TD ><TD CLASS="rdoc" >We are annotating something with a name: a type or identifier </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ModuleTarget" ><A NAME="v%3AModuleTarget" ></A ></A ><B >ModuleTarget</B > <A HREF="Module.html#t%3AModule" >Module</A ></TD ><TD CLASS="rdoc" >We are annotating a particular module </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AnnTarget')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:AnnTarget" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > name => <A HREF="Outputable.html#t%3AOutputable" >Outputable</A > (<A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A > name)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Unique.html#t%3AUniquable" >Uniquable</A > name => <A HREF="Unique.html#t%3AUniquable" >Uniquable</A > (<A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A > name)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Binary.html#t%3ABinary" >Binary</A > name => <A HREF="Binary.html#t%3ABinary" >Binary</A > (<A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A > name)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:CoreAnnTarget" ><A NAME="t%3ACoreAnnTarget" ></A ></A ><B >CoreAnnTarget</B > = <A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A > <A HREF="Name.html#t%3AName" >Name</A ></TD ></TR ><TR ><TD CLASS="doc" >The kind of annotation target found in the middle end of the compiler </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getAnnTargetName_maybe" ><A NAME="v%3AgetAnnTargetName_maybe" ></A ></A ><B >getAnnTargetName_maybe</B > :: <A HREF="Annotations.html#t%3AAnnTarget" >AnnTarget</A > name -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > name</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >AnnEnv for collecting and querying Annotations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:AnnEnv" ><A NAME="t%3AAnnEnv" ></A ></A ><B >AnnEnv</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A collection of annotations </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkAnnEnv" ><A NAME="v%3AmkAnnEnv" ></A ></A ><B >mkAnnEnv</B > :: [<A HREF="Annotations.html#t%3AAnnotation" >Annotation</A >] -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:extendAnnEnvList" ><A NAME="v%3AextendAnnEnvList" ></A ></A ><B >extendAnnEnvList</B > :: <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> [<A HREF="Annotations.html#t%3AAnnotation" >Annotation</A >] -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:plusAnnEnv" ><A NAME="v%3AplusAnnEnv" ></A ></A ><B >plusAnnEnv</B > :: <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptyAnnEnv" ><A NAME="v%3AemptyAnnEnv" ></A ></A ><B >emptyAnnEnv</B > :: <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:findAnns" ><A NAME="v%3AfindAnns" ></A ></A ><B >findAnns</B > :: <A HREF="../base-4.2.0.2/Data-Typeable.html#t%3ATypeable" >Typeable</A > a => ([<A HREF="../base-4.2.0.2/Data-Word.html#t%3AWord8" >Word8</A >] -> a) -> <A HREF="Annotations.html#t%3AAnnEnv" >AnnEnv</A > -> <A HREF="Annotations.html#t%3ACoreAnnTarget" >CoreAnnTarget</A > -> [a]</TD ></TR ><TR ><TD CLASS="doc" >Find the annotations attached to the given target as <TT ><A HREF="../base-4.2.0.2/Data-Typeable.html#t%3ATypeable" >Typeable</A ></TT > values of your choice. If no deserializer is specified, only transient annotations will be returned. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >