Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 2897

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>HsDecls</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_HsDecls.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">HsDecls</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Toplevel declarations
</a><ul><li><a href="#g:2">Class or type declarations
</a></li><li><a href="#g:3">Instance declarations
</a></li><li><a href="#g:4">Standalone deriving declarations
</a></li><li><a href="#g:5"><code>RULE</code> declarations
</a></li><li><a href="#g:6"><code>VECTORISE</code> declarations
</a></li><li><a href="#g:7"><code>default</code> declarations
</a></li><li><a href="#g:8">Top-level template haskell splice
</a></li><li><a href="#g:9">Foreign function interface declarations
</a></li><li><a href="#g:10">Data-constructor declarations
</a></li><li><a href="#g:11">Document comments
</a></li><li><a href="#g:12">Deprecations
</a></li><li><a href="#g:13">Annotations
</a></li></ul></li><li><a href="#g:14">Grouping
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Abstract syntax of global declarations.
</p><p>Definitions for: <code>TyDecl</code> and <code>ConDecl</code>, <code>ClassDecl</code>,
 <code>InstDecl</code>, <code>DefaultDecl</code> and <code>ForeignDecl</code>.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:HsDecl">HsDecl</a> id<ul class="subs"><li>= <a href="#v:TyClD">TyClD</a> (<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> id)  </li><li>| <a href="#v:InstD">InstD</a> (<a href="HsDecls.html#t:InstDecl">InstDecl</a> id)  </li><li>| <a href="#v:DerivD">DerivD</a> (<a href="HsDecls.html#t:DerivDecl">DerivDecl</a> id)  </li><li>| <a href="#v:ValD">ValD</a> (<a href="HsBinds.html#t:HsBind">HsBind</a> id)  </li><li>| <a href="#v:SigD">SigD</a> (<a href="HsBinds.html#t:Sig">Sig</a> id)  </li><li>| <a href="#v:DefD">DefD</a> (<a href="HsDecls.html#t:DefaultDecl">DefaultDecl</a> id)  </li><li>| <a href="#v:ForD">ForD</a> (<a href="HsDecls.html#t:ForeignDecl">ForeignDecl</a> id)  </li><li>| <a href="#v:WarningD">WarningD</a> (<a href="HsDecls.html#t:WarnDecl">WarnDecl</a> id)  </li><li>| <a href="#v:AnnD">AnnD</a> (<a href="HsDecls.html#t:AnnDecl">AnnDecl</a> id)  </li><li>| <a href="#v:RuleD">RuleD</a> (<a href="HsDecls.html#t:RuleDecl">RuleDecl</a> id)  </li><li>| <a href="#v:VectD">VectD</a> (<a href="HsDecls.html#t:VectDecl">VectDecl</a> id)  </li><li>| <a href="#v:SpliceD">SpliceD</a> (<a href="HsDecls.html#t:SpliceDecl">SpliceDecl</a> id)  </li><li>| <a href="#v:DocD">DocD</a> <a href="HsDecls.html#t:DocDecl">DocDecl</a>  </li><li>| <a href="#v:QuasiQuoteD">QuasiQuoteD</a> (<a href="HsTypes.html#t:HsQuasiQuote">HsQuasiQuote</a> id)  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:LHsDecl">LHsDecl</a> id = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:HsDecl">HsDecl</a> id)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:TyClDecl">TyClDecl</a> name<ul class="subs"><li>= <a href="#v:ForeignType">ForeignType</a> { <ul class="subs"><li><a href="#v:tcdLName">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</li><li><a href="#v:tcdExtName">tcdExtName</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="FastString.html#t:FastString">FastString</a></li></ul> }</li><li>| <a href="#v:TyFamily">TyFamily</a> { <ul class="subs"><li><a href="#v:tcdFlavour">tcdFlavour</a> :: <a href="HsDecls.html#t:FamilyFlavour">FamilyFlavour</a></li><li><a href="#v:tcdLName">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</li><li><a href="#v:tcdTyVars">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</li><li><a href="#v:tcdKind">tcdKind</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsTypes.html#t:LHsKind">LHsKind</a> name)</li></ul> }</li><li>| <a href="#v:TyData">TyData</a> { <ul class="subs"><li><a href="#v:tcdND">tcdND</a> :: <a href="HsDecls.html#t:NewOrData">NewOrData</a></li><li><a href="#v:tcdCtxt">tcdCtxt</a> :: <a href="HsTypes.html#t:LHsContext">LHsContext</a> name</li><li><a href="#v:tcdLName">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</li><li><a href="#v:tcdTyVars">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</li><li><a href="#v:tcdTyPats">tcdTyPats</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</li><li><a href="#v:tcdKindSig">tcdKindSig</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsTypes.html#t:LHsKind">LHsKind</a> name)</li><li><a href="#v:tcdCons">tcdCons</a> :: [<a href="HsDecls.html#t:LConDecl">LConDecl</a> name]</li><li><a href="#v:tcdDerivs">tcdDerivs</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</li></ul> }</li><li>| <a href="#v:TySynonym">TySynonym</a> { <ul class="subs"><li><a href="#v:tcdLName">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</li><li><a href="#v:tcdTyVars">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</li><li><a href="#v:tcdTyPats">tcdTyPats</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</li><li><a href="#v:tcdSynRhs">tcdSynRhs</a> :: <a href="HsTypes.html#t:LHsType">LHsType</a> name</li></ul> }</li><li>| <a href="#v:ClassDecl">ClassDecl</a> { <ul class="subs"><li><a href="#v:tcdCtxt">tcdCtxt</a> :: <a href="HsTypes.html#t:LHsContext">LHsContext</a> name</li><li><a href="#v:tcdLName">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</li><li><a href="#v:tcdTyVars">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</li><li><a href="#v:tcdFDs">tcdFDs</a> :: [<a href="SrcLoc.html#t:Located">Located</a> (<a href="Class.html#t:FunDep">FunDep</a> name)]</li><li><a href="#v:tcdSigs">tcdSigs</a> :: [<a href="HsBinds.html#t:LSig">LSig</a> name]</li><li><a href="#v:tcdMeths">tcdMeths</a> :: <a href="HsBinds.html#t:LHsBinds">LHsBinds</a> name</li><li><a href="#v:tcdATs">tcdATs</a> :: [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</li><li><a href="#v:tcdATDefs">tcdATDefs</a> :: [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</li><li><a href="#v:tcdDocs">tcdDocs</a> :: [<a href="HsDecls.html#t:LDocDecl">LDocDecl</a>]</li></ul> }</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:LTyClDecl">LTyClDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name)</li><li class="src short"><span class="keyword">type</span> <a href="#t:TyClGroup">TyClGroup</a> name = [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</li><li class="src short"><a href="#v:isClassDecl">isClassDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isSynDecl">isSynDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isDataDecl">isDataDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isTypeDecl">isTypeDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isFamilyDecl">isFamilyDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isFamInstDecl">isFamInstDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:tcdName">tcdName</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; name</li><li class="src short"><a href="#v:tyClDeclTyVars">tyClDeclTyVars</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</li><li class="src short"><a href="#v:countTyClDecls">countTyClDecls</a> ::  [<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name] -&gt; (<a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:InstDecl">InstDecl</a> name = <a href="#v:InstDecl">InstDecl</a> (<a href="HsTypes.html#t:LHsType">LHsType</a> name) (<a href="HsBinds.html#t:LHsBinds">LHsBinds</a> name) [<a href="HsBinds.html#t:LSig">LSig</a> name] [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</li><li class="src short"><span class="keyword">type</span> <a href="#t:LInstDecl">LInstDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:InstDecl">InstDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:NewOrData">NewOrData</a> <ul class="subs"><li>= <a href="#v:NewType">NewType</a>  </li><li>| <a href="#v:DataType">DataType</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:FamilyFlavour">FamilyFlavour</a> <ul class="subs"><li>= <a href="#v:TypeFamily">TypeFamily</a>  </li><li>| <a href="#v:DataFamily">DataFamily</a>  </li></ul></li><li class="src short"><a href="#v:instDeclATs">instDeclATs</a> ::  [<a href="HsDecls.html#t:LInstDecl">LInstDecl</a> name] -&gt; [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:DerivDecl">DerivDecl</a> name = <a href="#v:DerivDecl">DerivDecl</a> {<ul class="subs"><li><a href="#v:deriv_type">deriv_type</a> :: <a href="HsTypes.html#t:LHsType">LHsType</a> name</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:LDerivDecl">LDerivDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:DerivDecl">DerivDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:RuleDecl">RuleDecl</a> name = <a href="#v:HsRule">HsRule</a> <a href="BasicTypes.html#t:RuleName">RuleName</a> <a href="BasicTypes.html#t:Activation">Activation</a> [<a href="HsDecls.html#t:RuleBndr">RuleBndr</a> name] (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> name)) <a href="NameSet.html#t:NameSet">NameSet</a> (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> name)) <a href="NameSet.html#t:NameSet">NameSet</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:LRuleDecl">LRuleDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:RuleDecl">RuleDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:RuleBndr">RuleBndr</a> name<ul class="subs"><li>= <a href="#v:RuleBndr">RuleBndr</a> (<a href="SrcLoc.html#t:Located">Located</a> name)  </li><li>| <a href="#v:RuleBndrSig">RuleBndrSig</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="HsTypes.html#t:LHsType">LHsType</a> name)  </li></ul></li><li class="src short"><a href="#v:collectRuleBndrSigTys">collectRuleBndrSigTys</a> ::  [<a href="HsDecls.html#t:RuleBndr">RuleBndr</a> name] -&gt; [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:VectDecl">VectDecl</a> name<ul class="subs"><li>= <a href="#v:HsVect">HsVect</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsExpr.html#t:LHsExpr">LHsExpr</a> name))  </li><li>| <a href="#v:HsNoVect">HsNoVect</a> (<a href="SrcLoc.html#t:Located">Located</a> name)  </li><li>| <a href="#v:HsVectTypeIn">HsVectTypeIn</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="SrcLoc.html#t:Located">Located</a> name))  </li><li>| <a href="#v:HsVectTypeOut">HsVectTypeOut</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="TyCon.html#t:TyCon">TyCon</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TyCon.html#t:TyCon">TyCon</a>)  </li><li>| <a href="#v:HsVectClassIn">HsVectClassIn</a> (<a href="SrcLoc.html#t:Located">Located</a> name)  </li><li>| <a href="#v:HsVectClassOut">HsVectClassOut</a> <a href="Class.html#t:Class">Class</a>  </li><li>| <a href="#v:HsVectInstIn">HsVectInstIn</a> (<a href="HsTypes.html#t:LHsType">LHsType</a> name)  </li><li>| <a href="#v:HsVectInstOut">HsVectInstOut</a> <a href="InstEnv.html#t:Instance">Instance</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:LVectDecl">LVectDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:VectDecl">VectDecl</a> name)</li><li class="src short"><a href="#v:lvectDeclName">lvectDeclName</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> name =&gt; <a href="HsDecls.html#t:LVectDecl">LVectDecl</a> name -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:lvectInstDecl">lvectInstDecl</a> ::  <a href="HsDecls.html#t:LVectDecl">LVectDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:DefaultDecl">DefaultDecl</a> name = <a href="#v:DefaultDecl">DefaultDecl</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</li><li class="src short"><span class="keyword">type</span> <a href="#t:LDefaultDecl">LDefaultDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:DefaultDecl">DefaultDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:SpliceDecl">SpliceDecl</a> id = <a href="#v:SpliceDecl">SpliceDecl</a> (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> id)) <a href="HsTypes.html#t:HsExplicitFlag">HsExplicitFlag</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ForeignDecl">ForeignDecl</a> name<ul class="subs"><li>= <a href="#v:ForeignImport">ForeignImport</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="HsTypes.html#t:LHsType">LHsType</a> name) <a href="Coercion.html#t:Coercion">Coercion</a> <a href="HsDecls.html#t:ForeignImport">ForeignImport</a>  </li><li>| <a href="#v:ForeignExport">ForeignExport</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="HsTypes.html#t:LHsType">LHsType</a> name) <a href="Coercion.html#t:Coercion">Coercion</a> <a href="HsDecls.html#t:ForeignExport">ForeignExport</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:LForeignDecl">LForeignDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:ForeignDecl">ForeignDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:ForeignImport">ForeignImport</a>  = <a href="#v:CImport">CImport</a> <a href="ForeignCall.html#t:CCallConv">CCallConv</a> <a href="ForeignCall.html#t:Safety">Safety</a> <a href="FastString.html#t:FastString">FastString</a> <a href="HsDecls.html#t:CImportSpec">CImportSpec</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ForeignExport">ForeignExport</a>  = <a href="#v:CExport">CExport</a> <a href="ForeignCall.html#t:CExportSpec">CExportSpec</a></li><li class="src short"><a href="#v:noForeignImportCoercionYet">noForeignImportCoercionYet</a> :: <a href="Coercion.html#t:Coercion">Coercion</a></li><li class="src short"><a href="#v:noForeignExportCoercionYet">noForeignExportCoercionYet</a> :: <a href="Coercion.html#t:Coercion">Coercion</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CImportSpec">CImportSpec</a> <ul class="subs"><li>= <a href="#v:CLabel">CLabel</a> <a href="ForeignCall.html#t:CLabelString">CLabelString</a>  </li><li>| <a href="#v:CFunction">CFunction</a> <a href="ForeignCall.html#t:CCallTarget">CCallTarget</a>  </li><li>| <a href="#v:CWrapper">CWrapper</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ConDecl">ConDecl</a> name = <a href="#v:ConDecl">ConDecl</a> {<ul class="subs"><li><a href="#v:con_name">con_name</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</li><li><a href="#v:con_explicit">con_explicit</a> :: <a href="HsTypes.html#t:HsExplicitFlag">HsExplicitFlag</a></li><li><a href="#v:con_qvars">con_qvars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</li><li><a href="#v:con_cxt">con_cxt</a> :: <a href="HsTypes.html#t:LHsContext">LHsContext</a> name</li><li><a href="#v:con_details">con_details</a> :: <a href="HsDecls.html#t:HsConDeclDetails">HsConDeclDetails</a> name</li><li><a href="#v:con_res">con_res</a> :: <a href="HsDecls.html#t:ResType">ResType</a> name</li><li><a href="#v:con_doc">con_doc</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="HsDoc.html#t:LHsDocString">LHsDocString</a></li><li><a href="#v:con_old_rec">con_old_rec</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:LConDecl">LConDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:ConDecl">ConDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:ResType">ResType</a> name<ul class="subs"><li>= <a href="#v:ResTyH98">ResTyH98</a>  </li><li>| <a href="#v:ResTyGADT">ResTyGADT</a> (<a href="HsTypes.html#t:LHsType">LHsType</a> name)  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:HsConDeclDetails">HsConDeclDetails</a> name = <a href="HsPat.html#t:HsConDetails">HsConDetails</a> (<a href="HsTypes.html#t:LBangType">LBangType</a> name) [<a href="HsTypes.html#t:ConDeclField">ConDeclField</a> name]</li><li class="src short"><a href="#v:hsConDeclArgTys">hsConDeclArgTys</a> ::  <a href="HsDecls.html#t:HsConDeclDetails">HsConDeclDetails</a> name -&gt; [<a href="HsTypes.html#t:LBangType">LBangType</a> name]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:DocDecl">DocDecl</a> <ul class="subs"><li>= <a href="#v:DocCommentNext">DocCommentNext</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a>  </li><li>| <a href="#v:DocCommentPrev">DocCommentPrev</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a>  </li><li>| <a href="#v:DocCommentNamed">DocCommentNamed</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a>  </li><li>| <a href="#v:DocGroup">DocGroup</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:LDocDecl">LDocDecl</a> = <a href="SrcLoc.html#t:Located">Located</a> <a href="HsDecls.html#t:DocDecl">DocDecl</a></li><li class="src short"><a href="#v:docDeclDoc">docDeclDoc</a> :: <a href="HsDecls.html#t:DocDecl">DocDecl</a> -&gt; <a href="HsDoc.html#t:HsDocString">HsDocString</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:WarnDecl">WarnDecl</a> name = <a href="#v:Warning">Warning</a> name <a href="BasicTypes.html#t:WarningTxt">WarningTxt</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:LWarnDecl">LWarnDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:WarnDecl">WarnDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:AnnDecl">AnnDecl</a> name = <a href="#v:HsAnnotation">HsAnnotation</a> (<a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> name) (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> name))</li><li class="src short"><span class="keyword">type</span> <a href="#t:LAnnDecl">LAnnDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:AnnDecl">AnnDecl</a> name)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:AnnProvenance">AnnProvenance</a> name<ul class="subs"><li>= <a href="#v:ValueAnnProvenance">ValueAnnProvenance</a> name  </li><li>| <a href="#v:TypeAnnProvenance">TypeAnnProvenance</a> name  </li><li>| <a href="#v:ModuleAnnProvenance">ModuleAnnProvenance</a>  </li></ul></li><li class="src short"><a href="#v:annProvenanceName_maybe">annProvenanceName_maybe</a> ::  <a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> name -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> name</li><li class="src short"><a href="#v:modifyAnnProvenanceNameM">modifyAnnProvenanceNameM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (before -&gt; m after) -&gt; <a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> before -&gt; m (<a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> after)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:HsGroup">HsGroup</a> id = <a href="#v:HsGroup">HsGroup</a> {<ul class="subs"><li><a href="#v:hs_valds">hs_valds</a> :: <a href="HsBinds.html#t:HsValBinds">HsValBinds</a> id</li><li><a href="#v:hs_tyclds">hs_tyclds</a> :: [[<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> id]]</li><li><a href="#v:hs_instds">hs_instds</a> :: [<a href="HsDecls.html#t:LInstDecl">LInstDecl</a> id]</li><li><a href="#v:hs_derivds">hs_derivds</a> :: [<a href="HsDecls.html#t:LDerivDecl">LDerivDecl</a> id]</li><li><a href="#v:hs_fixds">hs_fixds</a> :: [<a href="HsBinds.html#t:LFixitySig">LFixitySig</a> id]</li><li><a href="#v:hs_defds">hs_defds</a> :: [<a href="HsDecls.html#t:LDefaultDecl">LDefaultDecl</a> id]</li><li><a href="#v:hs_fords">hs_fords</a> :: [<a href="HsDecls.html#t:LForeignDecl">LForeignDecl</a> id]</li><li><a href="#v:hs_warnds">hs_warnds</a> :: [<a href="HsDecls.html#t:LWarnDecl">LWarnDecl</a> id]</li><li><a href="#v:hs_annds">hs_annds</a> :: [<a href="HsDecls.html#t:LAnnDecl">LAnnDecl</a> id]</li><li><a href="#v:hs_ruleds">hs_ruleds</a> :: [<a href="HsDecls.html#t:LRuleDecl">LRuleDecl</a> id]</li><li><a href="#v:hs_vects">hs_vects</a> :: [<a href="HsDecls.html#t:LVectDecl">LVectDecl</a> id]</li><li><a href="#v:hs_docs">hs_docs</a> :: [<a href="HsDecls.html#t:LDocDecl">LDocDecl</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyRdrGroup">emptyRdrGroup</a> ::  <a href="HsDecls.html#t:HsGroup">HsGroup</a> a</li><li class="src short"><a href="#v:emptyRnGroup">emptyRnGroup</a> ::  <a href="HsDecls.html#t:HsGroup">HsGroup</a> a</li><li class="src short"><a href="#v:appendGroups">appendGroups</a> ::  <a href="HsDecls.html#t:HsGroup">HsGroup</a> a -&gt; <a href="HsDecls.html#t:HsGroup">HsGroup</a> a -&gt; <a href="HsDecls.html#t:HsGroup">HsGroup</a> a</li></ul></div><div id="interface"><h1 id="g:1">Toplevel declarations
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:HsDecl" class="def">HsDecl</a> id </p><div class="doc"><p>A Haskell Declaration
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TyClD" class="def">TyClD</a> (<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> id)</td><td class="doc"><p>A type or class declaration.
</p></td></tr><tr><td class="src"><a name="v:InstD" class="def">InstD</a> (<a href="HsDecls.html#t:InstDecl">InstDecl</a> id)</td><td class="doc"><p>An instance declaration.
</p></td></tr><tr><td class="src"><a name="v:DerivD" class="def">DerivD</a> (<a href="HsDecls.html#t:DerivDecl">DerivDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ValD" class="def">ValD</a> (<a href="HsBinds.html#t:HsBind">HsBind</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SigD" class="def">SigD</a> (<a href="HsBinds.html#t:Sig">Sig</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DefD" class="def">DefD</a> (<a href="HsDecls.html#t:DefaultDecl">DefaultDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ForD" class="def">ForD</a> (<a href="HsDecls.html#t:ForeignDecl">ForeignDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:WarningD" class="def">WarningD</a> (<a href="HsDecls.html#t:WarnDecl">WarnDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AnnD" class="def">AnnD</a> (<a href="HsDecls.html#t:AnnDecl">AnnDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RuleD" class="def">RuleD</a> (<a href="HsDecls.html#t:RuleDecl">RuleDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:VectD" class="def">VectD</a> (<a href="HsDecls.html#t:VectDecl">VectDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SpliceD" class="def">SpliceD</a> (<a href="HsDecls.html#t:SpliceDecl">SpliceDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DocD" class="def">DocD</a> <a href="HsDecls.html#t:DocDecl">DocDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:QuasiQuoteD" class="def">QuasiQuoteD</a> (<a href="HsTypes.html#t:HsQuasiQuote">HsQuasiQuote</a> id)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:HsDecl" class="caption collapser" onclick="toggleSection('i:HsDecl')">Instances</p><div id="section.i:HsDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:HsDecl">HsDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> id =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:HsDecl">HsDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:HsDecl">HsDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LHsDecl" class="def">LHsDecl</a> id = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:HsDecl">HsDecl</a> id)</p></div><h2 id="g:2">Class or type declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TyClDecl" class="def">TyClDecl</a> name </p><div class="doc"><p>A type or class declaration.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ForeignType" class="def">ForeignType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tcdLName" class="def">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</dt><dd class="doc"><p>Name of the class
</p><p>type constructor
</p><p>Type constructor
</p></dd><dt class="src"><a name="v:tcdExtName" class="def">tcdExtName</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="FastString.html#t:FastString">FastString</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:TyFamily" class="def">TyFamily</a></td><td class="doc"><pre>type/data family T :: *-&gt;*</pre></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tcdFlavour" class="def">tcdFlavour</a> :: <a href="HsDecls.html#t:FamilyFlavour">FamilyFlavour</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcdLName" class="def">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</dt><dd class="doc"><p>Name of the class
</p><p>type constructor
</p><p>Type constructor
</p></dd><dt class="src"><a name="v:tcdTyVars" class="def">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</dt><dd class="doc"><p>Class type variables
</p><p>type variables
</p><p>Type variables
</p></dd><dt class="src"><a name="v:tcdKind" class="def">tcdKind</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsTypes.html#t:LHsKind">LHsKind</a> name)</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:TyData" class="def">TyData</a></td><td class="doc"><p>Declares a data type or newtype, giving its construcors
 <code>
  data/newtype T a = <a href="constrs">constrs</a>
  data/newtype instance T [a] = <a href="constrs">constrs</a>
 </code>
</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tcdND" class="def">tcdND</a> :: <a href="HsDecls.html#t:NewOrData">NewOrData</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcdCtxt" class="def">tcdCtxt</a> :: <a href="HsTypes.html#t:LHsContext">LHsContext</a> name</dt><dd class="doc"><p>Context...
</p><p>Context
</p></dd><dt class="src"><a name="v:tcdLName" class="def">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</dt><dd class="doc"><p>Name of the class
</p><p>type constructor
</p><p>Type constructor
</p></dd><dt class="src"><a name="v:tcdTyVars" class="def">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</dt><dd class="doc"><p>Class type variables
</p><p>type variables
</p><p>Type variables
</p></dd><dt class="src"><a name="v:tcdTyPats" class="def">tcdTyPats</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</dt><dd class="doc"><p>Type patterns
 See Note [tcdTyVars and tcdTyPats] 
</p><p>Type patterns.
 See Note [tcdTyVars and tcdTyPats] 
</p></dd><dt class="src"><a name="v:tcdKindSig" class="def">tcdKindSig</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsTypes.html#t:LHsKind">LHsKind</a> name)</dt><dd class="doc"><p>Optional kind signature.
</p><p><code>(Just k)</code> for a GADT-style <code>data</code>, or <code>data
 instance</code> decl with explicit kind sig
</p></dd><dt class="src"><a name="v:tcdCons" class="def">tcdCons</a> :: [<a href="HsDecls.html#t:LConDecl">LConDecl</a> name]</dt><dd class="doc"><p>Data constructors
</p><p>For <code>data T a = T1 | T2 a</code>
   the <code><a href="HsDecls.html#t:LConDecl">LConDecl</a></code>s all have <code><a href="HsDecls.html#v:ResTyH98">ResTyH98</a></code>.
 For <code>data T a where { T1 :: T a }</code>
   the <code>LConDecls</code> all have <code><a href="HsDecls.html#v:ResTyGADT">ResTyGADT</a></code>.
</p></dd><dt class="src"><a name="v:tcdDerivs" class="def">tcdDerivs</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</dt><dd class="doc"><p>Derivings; <code>Nothing</code> =&gt; not specified,
              <code>Just []</code> =&gt; derive exactly what is asked
</p><p>These <a href="types.html">types</a> must be of form
 <code>
      forall ab. C ty1 ty2
 </code>
 Typically the foralls and ty args are empty, but they
 are non-empty for the newtype-deriving case
</p></dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:TySynonym" class="def">TySynonym</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tcdLName" class="def">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</dt><dd class="doc"><p>Name of the class
</p><p>type constructor
</p><p>Type constructor
</p></dd><dt class="src"><a name="v:tcdTyVars" class="def">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</dt><dd class="doc"><p>Class type variables
</p><p>type variables
</p><p>Type variables
</p></dd><dt class="src"><a name="v:tcdTyPats" class="def">tcdTyPats</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</dt><dd class="doc"><p>Type patterns
 See Note [tcdTyVars and tcdTyPats] 
</p><p>Type patterns.
 See Note [tcdTyVars and tcdTyPats] 
</p></dd><dt class="src"><a name="v:tcdSynRhs" class="def">tcdSynRhs</a> :: <a href="HsTypes.html#t:LHsType">LHsType</a> name</dt><dd class="doc"><p>synonym expansion
</p></dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:ClassDecl" class="def">ClassDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tcdCtxt" class="def">tcdCtxt</a> :: <a href="HsTypes.html#t:LHsContext">LHsContext</a> name</dt><dd class="doc"><p>Context...
</p><p>Context
</p></dd><dt class="src"><a name="v:tcdLName" class="def">tcdLName</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</dt><dd class="doc"><p>Name of the class
</p><p>type constructor
</p><p>Type constructor
</p></dd><dt class="src"><a name="v:tcdTyVars" class="def">tcdTyVars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</dt><dd class="doc"><p>Class type variables
</p><p>type variables
</p><p>Type variables
</p></dd><dt class="src"><a name="v:tcdFDs" class="def">tcdFDs</a> :: [<a href="SrcLoc.html#t:Located">Located</a> (<a href="Class.html#t:FunDep">FunDep</a> name)]</dt><dd class="doc"><p>Functional deps
</p></dd><dt class="src"><a name="v:tcdSigs" class="def">tcdSigs</a> :: [<a href="HsBinds.html#t:LSig">LSig</a> name]</dt><dd class="doc"><p>Methods' signatures
</p></dd><dt class="src"><a name="v:tcdMeths" class="def">tcdMeths</a> :: <a href="HsBinds.html#t:LHsBinds">LHsBinds</a> name</dt><dd class="doc"><p>Default methods
</p></dd><dt class="src"><a name="v:tcdATs" class="def">tcdATs</a> :: [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</dt><dd class="doc"><p>Associated types; ie
   only <code><a href="HsDecls.html#v:TyFamily">TyFamily</a></code>
</p></dd><dt class="src"><a name="v:tcdATDefs" class="def">tcdATDefs</a> :: [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</dt><dd class="doc"><p>Associated type defaults; ie
   only <code><a href="HsDecls.html#v:TySynonym">TySynonym</a></code>
</p></dd><dt class="src"><a name="v:tcdDocs" class="def">tcdDocs</a> :: [<a href="HsDecls.html#t:LDocDecl">LDocDecl</a>]</dt><dd class="doc"><p>Haddock docs
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:TyClDecl" class="caption collapser" onclick="toggleSection('i:TyClDecl')">Instances</p><div id="section.i:TyClDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:TyClDecl">TyClDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LTyClDecl" class="def">LTyClDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name)</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TyClGroup" class="def">TyClGroup</a> name = [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</p></div><div class="top"><p class="src"><a name="v:isClassDecl" class="def">isClassDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>type class
</p></div></div><div class="top"><p class="src"><a name="v:isSynDecl" class="def">isSynDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>vanilla Haskell type synonym (ie, not a type instance)
</p></div></div><div class="top"><p class="src"><a name="v:isDataDecl" class="def">isDataDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p><code>True</code> <a href="=">=</a> argument is a <code>data</code>/<code>newtype</code> or <code>data</code>/<code>newtype instance</code>
 declaration.
</p></div></div><div class="top"><p class="src"><a name="v:isTypeDecl" class="def">isTypeDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>type or type instance declaration
</p></div></div><div class="top"><p class="src"><a name="v:isFamilyDecl" class="def">isFamilyDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>type family declaration
</p></div></div><div class="top"><p class="src"><a name="v:isFamInstDecl" class="def">isFamInstDecl</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>family instance (types, newtypes, and data types)
</p></div></div><div class="top"><p class="src"><a name="v:tcdName" class="def">tcdName</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; name</p></div><div class="top"><p class="src"><a name="v:tyClDeclTyVars" class="def">tyClDeclTyVars</a> ::  <a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name -&gt; [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</p></div><div class="top"><p class="src"><a name="v:countTyClDecls" class="def">countTyClDecls</a> ::  [<a href="HsDecls.html#t:TyClDecl">TyClDecl</a> name] -&gt; (<a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>)</p></div><h2 id="g:3">Instance declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:InstDecl" class="def">InstDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:InstDecl" class="def">InstDecl</a> (<a href="HsTypes.html#t:LHsType">LHsType</a> name) (<a href="HsBinds.html#t:LHsBinds">LHsBinds</a> name) [<a href="HsBinds.html#t:LSig">LSig</a> name] [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:InstDecl" class="caption collapser" onclick="toggleSection('i:InstDecl')">Instances</p><div id="section.i:InstDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:InstDecl">InstDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:InstDecl">InstDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:InstDecl">InstDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LInstDecl" class="def">LInstDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:InstDecl">InstDecl</a> name)</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:NewOrData" class="def">NewOrData</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NewType" class="def">NewType</a></td><td class="doc"><pre>newtype Blah ...</pre></td></tr><tr><td class="src"><a name="v:DataType" class="def">DataType</a></td><td class="doc"><pre>data Blah ...</pre></td></tr></table></div><div class="subs instances"><p id="control.i:NewOrData" class="caption collapser" onclick="toggleSection('i:NewOrData')">Instances</p><div id="section.i:NewOrData" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="HsDecls.html#t:NewOrData">NewOrData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="HsDecls.html#t:NewOrData">NewOrData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="HsDecls.html#t:NewOrData">NewOrData</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="HsDecls.html#t:NewOrData">NewOrData</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FamilyFlavour" class="def">FamilyFlavour</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TypeFamily" class="def">TypeFamily</a></td><td class="doc"><pre>type family ...</pre></td></tr><tr><td class="src"><a name="v:DataFamily" class="def">DataFamily</a></td><td class="doc"><pre>data family ...</pre></td></tr></table></div><div class="subs instances"><p id="control.i:FamilyFlavour" class="caption collapser" onclick="toggleSection('i:FamilyFlavour')">Instances</p><div id="section.i:FamilyFlavour" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="HsDecls.html#t:FamilyFlavour">FamilyFlavour</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="HsDecls.html#t:FamilyFlavour">FamilyFlavour</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:instDeclATs" class="def">instDeclATs</a> ::  [<a href="HsDecls.html#t:LInstDecl">LInstDecl</a> name] -&gt; [<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> name]</p></div><h2 id="g:4">Standalone deriving declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:DerivDecl" class="def">DerivDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DerivDecl" class="def">DerivDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:deriv_type" class="def">deriv_type</a> :: <a href="HsTypes.html#t:LHsType">LHsType</a> name</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:DerivDecl" class="caption collapser" onclick="toggleSection('i:DerivDecl')">Instances</p><div id="section.i:DerivDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:DerivDecl">DerivDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:DerivDecl">DerivDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:DerivDecl">DerivDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LDerivDecl" class="def">LDerivDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:DerivDecl">DerivDecl</a> name)</p></div><h2 id="g:5"><code>RULE</code> declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:RuleDecl" class="def">RuleDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HsRule" class="def">HsRule</a> <a href="BasicTypes.html#t:RuleName">RuleName</a> <a href="BasicTypes.html#t:Activation">Activation</a> [<a href="HsDecls.html#t:RuleBndr">RuleBndr</a> name] (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> name)) <a href="NameSet.html#t:NameSet">NameSet</a> (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> name)) <a href="NameSet.html#t:NameSet">NameSet</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:RuleDecl" class="caption collapser" onclick="toggleSection('i:RuleDecl')">Instances</p><div id="section.i:RuleDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:RuleDecl">RuleDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:RuleDecl">RuleDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:RuleDecl">RuleDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LRuleDecl" class="def">LRuleDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:RuleDecl">RuleDecl</a> name)</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:RuleBndr" class="def">RuleBndr</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RuleBndr" class="def">RuleBndr</a> (<a href="SrcLoc.html#t:Located">Located</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RuleBndrSig" class="def">RuleBndrSig</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="HsTypes.html#t:LHsType">LHsType</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:RuleBndr" class="caption collapser" onclick="toggleSection('i:RuleBndr')">Instances</p><div id="section.i:RuleBndr" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:RuleBndr">RuleBndr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:RuleBndr">RuleBndr</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:RuleBndr">RuleBndr</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:collectRuleBndrSigTys" class="def">collectRuleBndrSigTys</a> ::  [<a href="HsDecls.html#t:RuleBndr">RuleBndr</a> name] -&gt; [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</p></div><h2 id="g:6"><code>VECTORISE</code> declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:VectDecl" class="def">VectDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HsVect" class="def">HsVect</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsExpr.html#t:LHsExpr">LHsExpr</a> name))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HsNoVect" class="def">HsNoVect</a> (<a href="SrcLoc.html#t:Located">Located</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HsVectTypeIn" class="def">HsVectTypeIn</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="SrcLoc.html#t:Located">Located</a> name))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HsVectTypeOut" class="def">HsVectTypeOut</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="TyCon.html#t:TyCon">TyCon</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TyCon.html#t:TyCon">TyCon</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HsVectClassIn" class="def">HsVectClassIn</a> (<a href="SrcLoc.html#t:Located">Located</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HsVectClassOut" class="def">HsVectClassOut</a> <a href="Class.html#t:Class">Class</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HsVectInstIn" class="def">HsVectInstIn</a> (<a href="HsTypes.html#t:LHsType">LHsType</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HsVectInstOut" class="def">HsVectInstOut</a> <a href="InstEnv.html#t:Instance">Instance</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:VectDecl" class="caption collapser" onclick="toggleSection('i:VectDecl')">Instances</p><div id="section.i:VectDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:VectDecl">VectDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:VectDecl">VectDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:VectDecl">VectDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LVectDecl" class="def">LVectDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:VectDecl">VectDecl</a> name)</p></div><div class="top"><p class="src"><a name="v:lvectDeclName" class="def">lvectDeclName</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> name =&gt; <a href="HsDecls.html#t:LVectDecl">LVectDecl</a> name -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:lvectInstDecl" class="def">lvectInstDecl</a> ::  <a href="HsDecls.html#t:LVectDecl">LVectDecl</a> name -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><h2 id="g:7"><code>default</code> declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:DefaultDecl" class="def">DefaultDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DefaultDecl" class="def">DefaultDecl</a> [<a href="HsTypes.html#t:LHsType">LHsType</a> name]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:DefaultDecl" class="caption collapser" onclick="toggleSection('i:DefaultDecl')">Instances</p><div id="section.i:DefaultDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:DefaultDecl">DefaultDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:DefaultDecl">DefaultDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:DefaultDecl">DefaultDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LDefaultDecl" class="def">LDefaultDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:DefaultDecl">DefaultDecl</a> name)</p></div><h2 id="g:8">Top-level template haskell splice
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SpliceDecl" class="def">SpliceDecl</a> id </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SpliceDecl" class="def">SpliceDecl</a> (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> id)) <a href="HsTypes.html#t:HsExplicitFlag">HsExplicitFlag</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SpliceDecl" class="caption collapser" onclick="toggleSection('i:SpliceDecl')">Instances</p><div id="section.i:SpliceDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:SpliceDecl">SpliceDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> id =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:SpliceDecl">SpliceDecl</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:SpliceDecl">SpliceDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:9">Foreign function interface declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ForeignDecl" class="def">ForeignDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ForeignImport" class="def">ForeignImport</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="HsTypes.html#t:LHsType">LHsType</a> name) <a href="Coercion.html#t:Coercion">Coercion</a> <a href="HsDecls.html#t:ForeignImport">ForeignImport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ForeignExport" class="def">ForeignExport</a> (<a href="SrcLoc.html#t:Located">Located</a> name) (<a href="HsTypes.html#t:LHsType">LHsType</a> name) <a href="Coercion.html#t:Coercion">Coercion</a> <a href="HsDecls.html#t:ForeignExport">ForeignExport</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ForeignDecl" class="caption collapser" onclick="toggleSection('i:ForeignDecl')">Instances</p><div id="section.i:ForeignDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:ForeignDecl">ForeignDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:ForeignDecl">ForeignDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:ForeignDecl">ForeignDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LForeignDecl" class="def">LForeignDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:ForeignDecl">ForeignDecl</a> name)</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ForeignImport" class="def">ForeignImport</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CImport" class="def">CImport</a> <a href="ForeignCall.html#t:CCallConv">CCallConv</a> <a href="ForeignCall.html#t:Safety">Safety</a> <a href="FastString.html#t:FastString">FastString</a> <a href="HsDecls.html#t:CImportSpec">CImportSpec</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ForeignImport" class="caption collapser" onclick="toggleSection('i:ForeignImport')">Instances</p><div id="section.i:ForeignImport" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="HsDecls.html#t:ForeignImport">ForeignImport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="HsDecls.html#t:ForeignImport">ForeignImport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="HsDecls.html#t:ForeignImport">ForeignImport</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ForeignExport" class="def">ForeignExport</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CExport" class="def">CExport</a> <a href="ForeignCall.html#t:CExportSpec">CExportSpec</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ForeignExport" class="caption collapser" onclick="toggleSection('i:ForeignExport')">Instances</p><div id="section.i:ForeignExport" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="HsDecls.html#t:ForeignExport">ForeignExport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="HsDecls.html#t:ForeignExport">ForeignExport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="HsDecls.html#t:ForeignExport">ForeignExport</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:noForeignImportCoercionYet" class="def">noForeignImportCoercionYet</a> :: <a href="Coercion.html#t:Coercion">Coercion</a></p></div><div class="top"><p class="src"><a name="v:noForeignExportCoercionYet" class="def">noForeignExportCoercionYet</a> :: <a href="Coercion.html#t:Coercion">Coercion</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CImportSpec" class="def">CImportSpec</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CLabel" class="def">CLabel</a> <a href="ForeignCall.html#t:CLabelString">CLabelString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CFunction" class="def">CFunction</a> <a href="ForeignCall.html#t:CCallTarget">CCallTarget</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CWrapper" class="def">CWrapper</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CImportSpec" class="caption collapser" onclick="toggleSection('i:CImportSpec')">Instances</p><div id="section.i:CImportSpec" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="HsDecls.html#t:CImportSpec">CImportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="HsDecls.html#t:CImportSpec">CImportSpec</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:10">Data-constructor declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ConDecl" class="def">ConDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ConDecl" class="def">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:con_name" class="def">con_name</a> :: <a href="SrcLoc.html#t:Located">Located</a> name</dt><dd class="doc"><p>Constructor name.  This is used for the DataCon itself, and for
 the user-callable wrapper Id.
</p></dd><dt class="src"><a name="v:con_explicit" class="def">con_explicit</a> :: <a href="HsTypes.html#t:HsExplicitFlag">HsExplicitFlag</a></dt><dd class="doc"><p>Is there an user-written forall? (cf. <code><a href="HsTypes.html#v:HsForAllTy">HsForAllTy</a></code>)
</p></dd><dt class="src"><a name="v:con_qvars" class="def">con_qvars</a> :: [<a href="HsTypes.html#t:LHsTyVarBndr">LHsTyVarBndr</a> name]</dt><dd class="doc"><p>Type variables.  Depending on <code><a href="HsDecls.html#v:con_res">con_res</a></code> this describes the
 following entities
</p><ul><li> ResTyH98:  the constructor's *existential* type variables
  - ResTyGADT: *all* the constructor's quantified type variables
</li></ul><p>If con_explicit is Implicit, then con_qvars is irrelevant
 until after renaming.  
</p></dd><dt class="src"><a name="v:con_cxt" class="def">con_cxt</a> :: <a href="HsTypes.html#t:LHsContext">LHsContext</a> name</dt><dd class="doc"><p>The context.  This <em>does not</em> include the &quot;stupid theta&quot; which
 lives only in the <code><a href="HsDecls.html#v:TyData">TyData</a></code> decl.
</p></dd><dt class="src"><a name="v:con_details" class="def">con_details</a> :: <a href="HsDecls.html#t:HsConDeclDetails">HsConDeclDetails</a> name</dt><dd class="doc"><p>The main payload
</p></dd><dt class="src"><a name="v:con_res" class="def">con_res</a> :: <a href="HsDecls.html#t:ResType">ResType</a> name</dt><dd class="doc"><p>Result type of the constructor
</p></dd><dt class="src"><a name="v:con_doc" class="def">con_doc</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="HsDoc.html#t:LHsDocString">LHsDocString</a></dt><dd class="doc"><p>A possible Haddock comment.
</p></dd><dt class="src"><a name="v:con_old_rec" class="def">con_old_rec</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>TEMPORARY field; True <a href="=">=</a> user has employed now-deprecated syntax for
                             GADT-style record decl   C { blah } :: T a b
 Remove this when we no longer parse this stuff, and hence do not
 need to report decprecated use
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ConDecl" class="caption collapser" onclick="toggleSection('i:ConDecl')">Instances</p><div id="section.i:ConDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:ConDecl">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:ConDecl">ConDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:ConDecl">ConDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LConDecl" class="def">LConDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:ConDecl">ConDecl</a> name)</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ResType" class="def">ResType</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ResTyH98" class="def">ResTyH98</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ResTyGADT" class="def">ResTyGADT</a> (<a href="HsTypes.html#t:LHsType">LHsType</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ResType" class="caption collapser" onclick="toggleSection('i:ResType')">Instances</p><div id="section.i:ResType" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:ResType">ResType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:ResType">ResType</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:ResType">ResType</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:HsConDeclDetails" class="def">HsConDeclDetails</a> name = <a href="HsPat.html#t:HsConDetails">HsConDetails</a> (<a href="HsTypes.html#t:LBangType">LBangType</a> name) [<a href="HsTypes.html#t:ConDeclField">ConDeclField</a> name]</p></div><div class="top"><p class="src"><a name="v:hsConDeclArgTys" class="def">hsConDeclArgTys</a> ::  <a href="HsDecls.html#t:HsConDeclDetails">HsConDeclDetails</a> name -&gt; [<a href="HsTypes.html#t:LBangType">LBangType</a> name]</p></div><h2 id="g:11">Document comments
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:DocDecl" class="def">DocDecl</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DocCommentNext" class="def">DocCommentNext</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DocCommentPrev" class="def">DocCommentPrev</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DocCommentNamed" class="def">DocCommentNamed</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DocGroup" class="def">DocGroup</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> <a href="HsDoc.html#t:HsDocString">HsDocString</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:DocDecl" class="caption collapser" onclick="toggleSection('i:DocDecl')">Instances</p><div id="section.i:DocDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="HsDecls.html#t:DocDecl">DocDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="HsDecls.html#t:DocDecl">DocDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="HsDecls.html#t:DocDecl">DocDecl</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LDocDecl" class="def">LDocDecl</a> = <a href="SrcLoc.html#t:Located">Located</a> <a href="HsDecls.html#t:DocDecl">DocDecl</a></p></div><div class="top"><p class="src"><a name="v:docDeclDoc" class="def">docDeclDoc</a> :: <a href="HsDecls.html#t:DocDecl">DocDecl</a> -&gt; <a href="HsDoc.html#t:HsDocString">HsDocString</a></p></div><h2 id="g:12">Deprecations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:WarnDecl" class="def">WarnDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Warning" class="def">Warning</a> name <a href="BasicTypes.html#t:WarningTxt">WarningTxt</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:WarnDecl" class="caption collapser" onclick="toggleSection('i:WarnDecl')">Instances</p><div id="section.i:WarnDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:WarnDecl">WarnDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:WarnDecl">WarnDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:WarnDecl">WarnDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LWarnDecl" class="def">LWarnDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:WarnDecl">WarnDecl</a> name)</p></div><h2 id="g:13">Annotations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:AnnDecl" class="def">AnnDecl</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HsAnnotation" class="def">HsAnnotation</a> (<a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> name) (<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> name))</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:AnnDecl" class="caption collapser" onclick="toggleSection('i:AnnDecl')">Instances</p><div id="section.i:AnnDecl" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:AnnDecl">AnnDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:AnnDecl">AnnDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:AnnDecl">AnnDecl</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LAnnDecl" class="def">LAnnDecl</a> name = <a href="SrcLoc.html#t:Located">Located</a> (<a href="HsDecls.html#t:AnnDecl">AnnDecl</a> name)</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:AnnProvenance" class="def">AnnProvenance</a> name </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ValueAnnProvenance" class="def">ValueAnnProvenance</a> name</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TypeAnnProvenance" class="def">TypeAnnProvenance</a> name</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ModuleAnnProvenance" class="def">ModuleAnnProvenance</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:AnnProvenance" class="caption collapser" onclick="toggleSection('i:AnnProvenance')">Instances</p><div id="section.i:AnnProvenance" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> name =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:annProvenanceName_maybe" class="def">annProvenanceName_maybe</a> ::  <a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> name -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> name</p></div><div class="top"><p class="src"><a name="v:modifyAnnProvenanceNameM" class="def">modifyAnnProvenanceNameM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (before -&gt; m after) -&gt; <a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> before -&gt; m (<a href="HsDecls.html#t:AnnProvenance">AnnProvenance</a> after)</p></div><h1 id="g:14">Grouping
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:HsGroup" class="def">HsGroup</a> id </p><div class="doc"><p>A <code><a href="HsDecls.html#t:HsDecl">HsDecl</a></code> is categorised into a <code><a href="HsDecls.html#t:HsGroup">HsGroup</a></code> before being
 fed to the renamer.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HsGroup" class="def">HsGroup</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:hs_valds" class="def">hs_valds</a> :: <a href="HsBinds.html#t:HsValBinds">HsValBinds</a> id</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_tyclds" class="def">hs_tyclds</a> :: [[<a href="HsDecls.html#t:LTyClDecl">LTyClDecl</a> id]]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_instds" class="def">hs_instds</a> :: [<a href="HsDecls.html#t:LInstDecl">LInstDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_derivds" class="def">hs_derivds</a> :: [<a href="HsDecls.html#t:LDerivDecl">LDerivDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_fixds" class="def">hs_fixds</a> :: [<a href="HsBinds.html#t:LFixitySig">LFixitySig</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_defds" class="def">hs_defds</a> :: [<a href="HsDecls.html#t:LDefaultDecl">LDefaultDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_fords" class="def">hs_fords</a> :: [<a href="HsDecls.html#t:LForeignDecl">LForeignDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_warnds" class="def">hs_warnds</a> :: [<a href="HsDecls.html#t:LWarnDecl">LWarnDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_annds" class="def">hs_annds</a> :: [<a href="HsDecls.html#t:LAnnDecl">LAnnDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_ruleds" class="def">hs_ruleds</a> :: [<a href="HsDecls.html#t:LRuleDecl">LRuleDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_vects" class="def">hs_vects</a> :: [<a href="HsDecls.html#t:LVectDecl">LVectDecl</a> id]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:hs_docs" class="def">hs_docs</a> :: [<a href="HsDecls.html#t:LDocDecl">LDocDecl</a>]</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:HsGroup" class="caption collapser" onclick="toggleSection('i:HsGroup')">Instances</p><div id="section.i:HsGroup" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="HsDecls.html#t:HsGroup">HsGroup</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> id =&gt; <a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> (<a href="HsDecls.html#t:HsGroup">HsGroup</a> id)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> name =&gt; <a href="Outputable.html#t:Outputable">Outputable</a> (<a href="HsDecls.html#t:HsGroup">HsGroup</a> name)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:emptyRdrGroup" class="def">emptyRdrGroup</a> ::  <a href="HsDecls.html#t:HsGroup">HsGroup</a> a</p></div><div class="top"><p class="src"><a name="v:emptyRnGroup" class="def">emptyRnGroup</a> ::  <a href="HsDecls.html#t:HsGroup">HsGroup</a> a</p></div><div class="top"><p class="src"><a name="v:appendGroups" class="def">appendGroups</a> ::  <a href="HsDecls.html#t:HsGroup">HsGroup</a> a -&gt; <a href="HsDecls.html#t:HsGroup">HsGroup</a> a -&gt; <a href="HsDecls.html#t:HsGroup">HsGroup</a> a</p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>