Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 97a84b09736c9f6da17a3071b86ce47d > files > 65

ghc-haskell-src-exts-devel-1.10.2-1.fc15.i686.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>Language.Haskell.Exts.Syntax</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_Language-Haskell-Exts-Syntax.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Language-Haskell-Exts-Syntax.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">haskell-src-exts-1.10.2: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>stable</td></tr><tr><th>Maintainer</th><td>Niklas Broberg, d00nibro@chalmers.se</td></tr></table><p class="caption">Language.Haskell.Exts.Syntax</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Modules
</a></li><li><a href="#g:2">Declarations
</a><ul><li><a href="#g:3">Type classes and instances
</a></li><li><a href="#g:4">Data type declarations
</a></li><li><a href="#g:5">Function bindings
</a></li></ul></li><li><a href="#g:6">Class Assertions and Contexts
</a></li><li><a href="#g:7">Types
</a></li><li><a href="#g:8">Expressions
</a></li><li><a href="#g:9">Patterns
</a></li><li><a href="#g:10">Literals
</a></li><li><a href="#g:11">Variables, Constructors and Operators
</a></li><li><a href="#g:12">Template Haskell
</a></li><li><a href="#g:13">FFI
</a></li><li><a href="#g:14">Pragmas
</a></li><li><a href="#g:15">Builtin names
</a><ul><li><a href="#g:16">Modules
</a></li><li><a href="#g:17">Main function of a program
</a></li><li><a href="#g:18">Constructors
</a></li><li><a href="#g:19">Special identifiers
</a></li><li><a href="#g:20">Type constructors
</a></li></ul></li><li><a href="#g:21">Source coordinates
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A suite of datatypes describing the abstract syntax of Haskell 98
 <a href="http://www.haskell.org/onlinereport/">http://www.haskell.org/onlinereport/</a> plus registered extensions, including:
</p><ul><li> multi-parameter type classes with functional dependencies (MultiParamTypeClasses, FunctionalDependencies)
</li><li> parameters of type class assertions are unrestricted (FlexibleContexts)
</li><li> <code>forall</code> types as universal and existential quantification (RankNTypes, ExistentialQuantification, etc)
</li><li> pattern guards (PatternGuards)
</li><li> implicit parameters (ImplicitParameters)
</li><li> generalised algebraic data types (GADTs)
</li><li> template haskell (TemplateHaskell)
</li><li> empty data type declarations (EmptyDataDecls)
</li><li> unboxed tuples (UnboxedTuples)
</li><li> regular patterns (RegularPatterns)
</li><li> HSP-style XML expressions and patterns (XmlSyntax)
</li></ul></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:Module">Module</a>  = <a href="#v:Module">Module</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:WarningText">WarningText</a>) (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</a>]) [<a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:WarningText">WarningText</a> <ul class="subs"><li>= <a href="#v:DeprText">DeprText</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:WarnText">WarnText</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ExportSpec">ExportSpec</a> <ul class="subs"><li>= <a href="#v:EVar">EVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:EAbs">EAbs</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:EThingAll">EThingAll</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:EThingWith">EThingWith</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a>]  </li><li>| <a href="#v:EModuleContents">EModuleContents</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ImportDecl">ImportDecl</a>  = <a href="#v:ImportDecl">ImportDecl</a> {<ul class="subs"><li><a href="#v:importLoc">importLoc</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></li><li><a href="#v:importModule">importModule</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></li><li><a href="#v:importQualified">importQualified</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:importSrc">importSrc</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:importPkg">importPkg</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li><a href="#v:importAs">importAs</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></li><li><a href="#v:importSpecs">importSpecs</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a>, [<a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</a>])</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:ImportSpec">ImportSpec</a> <ul class="subs"><li>= <a href="#v:IVar">IVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:IAbs">IAbs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:IThingAll">IThingAll</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:IThingWith">IThingWith</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Assoc">Assoc</a> <ul class="subs"><li>= <a href="#v:AssocNone">AssocNone</a>  </li><li>| <a href="#v:AssocLeft">AssocLeft</a>  </li><li>| <a href="#v:AssocRight">AssocRight</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Decl">Decl</a> <ul class="subs"><li>= <a href="#v:TypeDecl">TypeDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:TypeFamDecl">TypeFamDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)  </li><li>| <a href="#v:DataDecl">DataDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]  </li><li>| <a href="#v:GDataDecl">GDataDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]  </li><li>| <a href="#v:DataFamDecl">DataFamDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)  </li><li>| <a href="#v:TypeInsDecl">TypeInsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:DataInsDecl">DataInsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> [<a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]  </li><li>| <a href="#v:GDataInsDecl">GDataInsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]  </li><li>| <a href="#v:ClassDecl">ClassDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a>]  </li><li>| <a href="#v:InstDecl">InstDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a>]  </li><li>| <a href="#v:DerivDecl">DerivDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:InfixDecl">InfixDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</a>]  </li><li>| <a href="#v:DefaultDecl">DefaultDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:SpliceDecl">SpliceDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:TypeSig">TypeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:FunBind">FunBind</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a>]  </li><li>| <a href="#v:PatBind">PatBind</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>) <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a>  </li><li>| <a href="#v:ForImp">ForImp</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:ForExp">ForExp</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:RulePragmaDecl">RulePragmaDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</a>]  </li><li>| <a href="#v:DeprPragmaDecl">DeprPragmaDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [([<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>], <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>)]  </li><li>| <a href="#v:WarnPragmaDecl">WarnPragmaDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [([<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>], <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>)]  </li><li>| <a href="#v:InlineSig">InlineSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:InlineConlikeSig">InlineConlikeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:SpecSig">SpecSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:SpecInlineSig">SpecInlineSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:InstSig">InstSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:AnnPragma">AnnPragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Binds">Binds</a> <ul class="subs"><li>= <a href="#v:BDecls">BDecls</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>]  </li><li>| <a href="#v:IPBinds">IPBinds</a> [<a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:IPBind">IPBind</a>  = <a href="#v:IPBind">IPBind</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ClassDecl">ClassDecl</a> <ul class="subs"><li>= <a href="#v:ClsDecl">ClsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>  </li><li>| <a href="#v:ClsDataFam">ClsDataFam</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)  </li><li>| <a href="#v:ClsTyFam">ClsTyFam</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)  </li><li>| <a href="#v:ClsTyDef">ClsTyDef</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:InstDecl">InstDecl</a> <ul class="subs"><li>= <a href="#v:InsDecl">InsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>  </li><li>| <a href="#v:InsType">InsType</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:InsData">InsData</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> [<a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]  </li><li>| <a href="#v:InsGData">InsGData</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Deriving">Deriving</a> = (<a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>, [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>])</li><li class="src short"><span class="keyword">data</span>  <a href="#t:DataOrNew">DataOrNew</a> <ul class="subs"><li>= <a href="#v:DataType">DataType</a>  </li><li>| <a href="#v:NewType">NewType</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ConDecl">ConDecl</a> <ul class="subs"><li>= <a href="#v:ConDecl">ConDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a>]  </li><li>| <a href="#v:InfixConDecl">InfixConDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a>  </li><li>| <a href="#v:RecDecl">RecDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [([<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>], <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a>)]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:QualConDecl">QualConDecl</a>  = <a href="#v:QualConDecl">QualConDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GadtDecl">GadtDecl</a>  = <a href="#v:GadtDecl">GadtDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:BangType">BangType</a> <ul class="subs"><li>= <a href="#v:BangedTy">BangedTy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:UnBangedTy">UnBangedTy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:UnpackedTy">UnpackedTy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Match">Match</a>  = <a href="#v:Match">Match</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>) <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Rhs">Rhs</a> <ul class="subs"><li>= <a href="#v:UnGuardedRhs">UnGuardedRhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:GuardedRhss">GuardedRhss</a> [<a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GuardedRhs">GuardedRhs</a>  = <a href="#v:GuardedRhs">GuardedRhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Context">Context</a> = [<a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:FunDep">FunDep</a>  = <a href="#v:FunDep">FunDep</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Asst">Asst</a> <ul class="subs"><li>= <a href="#v:ClassA">ClassA</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:InfixA">InfixA</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:IParam">IParam</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:EqualP">EqualP</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Type">Type</a> <ul class="subs"><li>= <a href="#v:TyForall">TyForall</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>]) <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:TyFun">TyFun</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:TyTuple">TyTuple</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:TyList">TyList</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:TyApp">TyApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:TyVar">TyVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:TyCon">TyCon</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:TyParen">TyParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:TyInfix">TyInfix</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:TyKind">TyKind</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Boxed">Boxed</a> <ul class="subs"><li>= <a href="#v:Boxed">Boxed</a>  </li><li>| <a href="#v:Unboxed">Unboxed</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Kind">Kind</a> <ul class="subs"><li>= <a href="#v:KindStar">KindStar</a>  </li><li>| <a href="#v:KindBang">KindBang</a>  </li><li>| <a href="#v:KindFn">KindFn</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>  </li><li>| <a href="#v:KindParen">KindParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>  </li><li>| <a href="#v:KindVar">KindVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:TyVarBind">TyVarBind</a> <ul class="subs"><li>= <a href="#v:KindedVar">KindedVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>  </li><li>| <a href="#v:UnkindedVar">UnkindedVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Exp">Exp</a> <ul class="subs"><li>= <a href="#v:Var">Var</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:IPVar">IPVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a>  </li><li>| <a href="#v:Con">Con</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:Lit">Lit</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a>  </li><li>| <a href="#v:InfixApp">InfixApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:App">App</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:NegApp">NegApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:Lambda">Lambda</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:Let">Let</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:If">If</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:Case">Case</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a>]  </li><li>| <a href="#v:Do">Do</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]  </li><li>| <a href="#v:MDo">MDo</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]  </li><li>| <a href="#v:Tuple">Tuple</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:TupleSection">TupleSection</a> [<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:List">List</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:Paren">Paren</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LeftSection">LeftSection</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a>  </li><li>| <a href="#v:RightSection">RightSection</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:RecConstr">RecConstr</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a>]  </li><li>| <a href="#v:RecUpdate">RecUpdate</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a>]  </li><li>| <a href="#v:EnumFrom">EnumFrom</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:EnumFromTo">EnumFromTo</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:EnumFromThen">EnumFromThen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:EnumFromThenTo">EnumFromThenTo</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:ListComp">ListComp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a>]  </li><li>| <a href="#v:ParComp">ParComp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [[<a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a>]]  </li><li>| <a href="#v:ExpTypeSig">ExpTypeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:VarQuote">VarQuote</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:TypQuote">TypQuote</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:BracketExp">BracketExp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a>  </li><li>| <a href="#v:SpliceExp">SpliceExp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a>  </li><li>| <a href="#v:QuasiQuote">QuasiQuote</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:XTag">XTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:XETag">XETag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>)  </li><li>| <a href="#v:XPcdata">XPcdata</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:XExpTag">XExpTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:XChildTag">XChildTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:CorePragma">CorePragma</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:SCCPragma">SCCPragma</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:GenPragma">GenPragma</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>) (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>) <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:Proc">Proc</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LeftArrApp">LeftArrApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:RightArrApp">RightArrApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LeftArrHighApp">LeftArrHighApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:RightArrHighApp">RightArrHighApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Stmt">Stmt</a> <ul class="subs"><li>= <a href="#v:Generator">Generator</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:Qualifier">Qualifier</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LetStmt">LetStmt</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a>  </li><li>| <a href="#v:RecStmt">RecStmt</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:QualStmt">QualStmt</a> <ul class="subs"><li>= <a href="#v:QualStmt">QualStmt</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>  </li><li>| <a href="#v:ThenTrans">ThenTrans</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:ThenBy">ThenBy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:GroupBy">GroupBy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:GroupUsing">GroupUsing</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:GroupByUsing">GroupByUsing</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:FieldUpdate">FieldUpdate</a> <ul class="subs"><li>= <a href="#v:FieldUpdate">FieldUpdate</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:FieldPun">FieldPun</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:FieldWildcard">FieldWildcard</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Alt">Alt</a>  = <a href="#v:Alt">Alt</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GuardedAlts">GuardedAlts</a> <ul class="subs"><li>= <a href="#v:UnGuardedAlt">UnGuardedAlt</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:GuardedAlts">GuardedAlts</a> [<a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GuardedAlt">GuardedAlt</a>  = <a href="#v:GuardedAlt">GuardedAlt</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:XAttr">XAttr</a>  = <a href="#v:XAttr">XAttr</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Pat">Pat</a> <ul class="subs"><li>= <a href="#v:PVar">PVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:PLit">PLit</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a>  </li><li>| <a href="#v:PNeg">PNeg</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PNPlusK">PNPlusK</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:PInfixApp">PInfixApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PApp">PApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:PTuple">PTuple</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:PList">PList</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:PParen">PParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PRec">PRec</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a>]  </li><li>| <a href="#v:PAsPat">PAsPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PWildCard">PWildCard</a>  </li><li>| <a href="#v:PIrrPat">PIrrPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PatTypeSig">PatTypeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:PViewPat">PViewPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PRPat">PRPat</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>]  </li><li>| <a href="#v:PXTag">PXTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:PXETag">PXETag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>)  </li><li>| <a href="#v:PXPcdata">PXPcdata</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:PXPatTag">PXPatTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PXRPats">PXRPats</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>]  </li><li>| <a href="#v:PExplTypeArg">PExplTypeArg</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:PQuasiQuote">PQuasiQuote</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:PBangPat">PBangPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:PatField">PatField</a> <ul class="subs"><li>= <a href="#v:PFieldPat">PFieldPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:PFieldPun">PFieldPun</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:PFieldWildcard">PFieldWildcard</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:PXAttr">PXAttr</a>  = <a href="#v:PXAttr">PXAttr</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:RPat">RPat</a> <ul class="subs"><li>= <a href="#v:RPOp">RPOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a>  </li><li>| <a href="#v:RPEither">RPEither</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>  </li><li>| <a href="#v:RPSeq">RPSeq</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>]  </li><li>| <a href="#v:RPGuard">RPGuard</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]  </li><li>| <a href="#v:RPCAs">RPCAs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>  </li><li>| <a href="#v:RPAs">RPAs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>  </li><li>| <a href="#v:RPParen">RPParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>  </li><li>| <a href="#v:RPPat">RPPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:RPatOp">RPatOp</a> <ul class="subs"><li>= <a href="#v:RPStar">RPStar</a>  </li><li>| <a href="#v:RPStarG">RPStarG</a>  </li><li>| <a href="#v:RPPlus">RPPlus</a>  </li><li>| <a href="#v:RPPlusG">RPPlusG</a>  </li><li>| <a href="#v:RPOpt">RPOpt</a>  </li><li>| <a href="#v:RPOptG">RPOptG</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Literal">Literal</a> <ul class="subs"><li>= <a href="#v:Char">Char</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a>  </li><li>| <a href="#v:String">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:Int">Int</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:Frac">Frac</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Rational">Rational</a>  </li><li>| <a href="#v:PrimInt">PrimInt</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:PrimWord">PrimWord</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:PrimFloat">PrimFloat</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Rational">Rational</a>  </li><li>| <a href="#v:PrimDouble">PrimDouble</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Rational">Rational</a>  </li><li>| <a href="#v:PrimChar">PrimChar</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a>  </li><li>| <a href="#v:PrimString">PrimString</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ModuleName">ModuleName</a>  = <a href="#v:ModuleName">ModuleName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:QName">QName</a> <ul class="subs"><li>= <a href="#v:Qual">Qual</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:UnQual">UnQual</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:Special">Special</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Name">Name</a> <ul class="subs"><li>= <a href="#v:Ident">Ident</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:Symbol">Symbol</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:QOp">QOp</a> <ul class="subs"><li>= <a href="#v:QVarOp">QVarOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li><li>| <a href="#v:QConOp">QConOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Op">Op</a> <ul class="subs"><li>= <a href="#v:VarOp">VarOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:ConOp">ConOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:SpecialCon">SpecialCon</a> <ul class="subs"><li>= <a href="#v:UnitCon">UnitCon</a>  </li><li>| <a href="#v:ListCon">ListCon</a>  </li><li>| <a href="#v:FunCon">FunCon</a>  </li><li>| <a href="#v:TupleCon">TupleCon</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>  </li><li>| <a href="#v:Cons">Cons</a>  </li><li>| <a href="#v:UnboxedSingleCon">UnboxedSingleCon</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CName">CName</a> <ul class="subs"><li>= <a href="#v:VarName">VarName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:ConName">ConName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:IPName">IPName</a> <ul class="subs"><li>= <a href="#v:IPDup">IPDup</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:IPLin">IPLin</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:XName">XName</a> <ul class="subs"><li>= <a href="#v:XName">XName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:XDomName">XDomName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Bracket">Bracket</a> <ul class="subs"><li>= <a href="#v:ExpBracket">ExpBracket</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:PatBracket">PatBracket</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:TypeBracket">TypeBracket</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:DeclBracket">DeclBracket</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Splice">Splice</a> <ul class="subs"><li>= <a href="#v:IdSplice">IdSplice</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:ParenSplice">ParenSplice</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Safety">Safety</a> <ul class="subs"><li>= <a href="#v:PlayRisky">PlayRisky</a>  </li><li>| <a href="#v:PlaySafe">PlaySafe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CallConv">CallConv</a> <ul class="subs"><li>= <a href="#v:StdCall">StdCall</a>  </li><li>| <a href="#v:CCall">CCall</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ModulePragma">ModulePragma</a> <ul class="subs"><li>= <a href="#v:LanguagePragma">LanguagePragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>]  </li><li>| <a href="#v:OptionsPragma">OptionsPragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</a>) <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li><li>| <a href="#v:AnnModulePragma">AnnModulePragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Tool">Tool</a> <ul class="subs"><li>= <a href="#v:GHC">GHC</a>  </li><li>| <a href="#v:HUGS">HUGS</a>  </li><li>| <a href="#v:NHC98">NHC98</a>  </li><li>| <a href="#v:YHC">YHC</a>  </li><li>| <a href="#v:HADDOCK">HADDOCK</a>  </li><li>| <a href="#v:UnknownTool">UnknownTool</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Rule">Rule</a>  = <a href="#v:Rule">Rule</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</a>]) <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:RuleVar">RuleVar</a> <ul class="subs"><li>= <a href="#v:RuleVar">RuleVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:TypedRuleVar">TypedRuleVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Activation">Activation</a> <ul class="subs"><li>= <a href="#v:AlwaysActive">AlwaysActive</a>  </li><li>| <a href="#v:ActiveFrom">ActiveFrom</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>  </li><li>| <a href="#v:ActiveUntil">ActiveUntil</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Annotation">Annotation</a> <ul class="subs"><li>= <a href="#v:Ann">Ann</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:TypeAnn">TypeAnn</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:ModuleAnn">ModuleAnn</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>  </li></ul></li><li class="src short"><a href="#v:prelude_mod">prelude_mod</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:main_mod">main_mod</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:main_name">main_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:unit_con_name">unit_con_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:tuple_con_name">tuple_con_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:list_cons_name">list_cons_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:unboxed_singleton_con_name">unboxed_singleton_con_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:unit_con">unit_con</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:tuple_con">tuple_con</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:unboxed_singleton_con">unboxed_singleton_con</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:as_name">as_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:qualified_name">qualified_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:hiding_name">hiding_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:minus_name">minus_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:bang_name">bang_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:dot_name">dot_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:star_name">star_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:export_name">export_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:safe_name">safe_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:unsafe_name">unsafe_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:threadsafe_name">threadsafe_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:stdcall_name">stdcall_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:ccall_name">ccall_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:unit_tycon_name">unit_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:fun_tycon_name">fun_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:list_tycon_name">list_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:tuple_tycon_name">tuple_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:unboxed_singleton_tycon_name">unboxed_singleton_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></li><li class="src short"><a href="#v:unit_tycon">unit_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:fun_tycon">fun_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:list_tycon">list_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:tuple_tycon">tuple_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:unboxed_singleton_tycon">unboxed_singleton_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:SrcLoc">SrcLoc</a>  = <a href="#v:SrcLoc">SrcLoc</a> {<ul class="subs"><li><a href="#v:srcFilename">srcFilename</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></li><li><a href="#v:srcLine">srcLine</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a></li><li><a href="#v:srcColumn">srcColumn</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a></li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Modules
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Module" class="def">Module</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Module" class="link">Source</a></p><div class="doc"><p>A complete Haskell source module.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Module" class="def">Module</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:WarningText">WarningText</a>) (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</a>]) [<a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Module" class="caption collapser" onclick="toggleSection('i:Module')">Instances</p><div id="section.i:Module" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Parser.html#t:Parseable">Parseable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Module">Module</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:WarningText" class="def">WarningText</a>  <a href="src/Language-Haskell-Exts-Syntax.html#WarningText" class="link">Source</a></p><div class="doc"><p>Warning text to optionally use in the module header of e.g.
   a deprecated module.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DeprText" class="def">DeprText</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:WarnText" class="def">WarnText</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:WarningText" class="caption collapser" onclick="toggleSection('i:WarningText')">Instances</p><div id="section.i:WarningText" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:WarningText">WarningText</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:WarningText">WarningText</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:WarningText">WarningText</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:WarningText">WarningText</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:WarningText">WarningText</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:ExportSpec" class="def">ExportSpec</a>  <a href="src/Language-Haskell-Exts-Syntax.html#ExportSpec" class="link">Source</a></p><div class="doc"><p>An item in a module's export specification.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:EVar" class="def">EVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>variable
</p></td></tr><tr><td class="src"><a name="v:EAbs" class="def">EAbs</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p><code>T</code>:
   a class or datatype exported abstractly,
   or a type synonym.
</p></td></tr><tr><td class="src"><a name="v:EThingAll" class="def">EThingAll</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p><code>T(..)</code>:
   a class exported with all of its methods, or
   a datatype exported with all of its constructors.
</p></td></tr><tr><td class="src"><a name="v:EThingWith" class="def">EThingWith</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a>]</td><td class="doc"><p><code>T(C_1,...,C_n)</code>:
   a class exported with some of its methods, or
   a datatype exported with some of its constructors.
</p></td></tr><tr><td class="src"><a name="v:EModuleContents" class="def">EModuleContents</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></td><td class="doc"><p><code>module M</code>:
   re-export a module.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:ExportSpec" class="caption collapser" onclick="toggleSection('i:ExportSpec')">Instances</p><div id="section.i:ExportSpec" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:ExportSpec">ExportSpec</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:ImportDecl" class="def">ImportDecl</a>  <a href="src/Language-Haskell-Exts-Syntax.html#ImportDecl" class="link">Source</a></p><div class="doc"><p>An import declaration.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ImportDecl" class="def">ImportDecl</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:importLoc" class="def">importLoc</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></dt><dd class="doc"><p>position of the <code>import</code> keyword.
</p></dd><dt class="src"><a name="v:importModule" class="def">importModule</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></dt><dd class="doc"><p>name of the module imported.
</p></dd><dt class="src"><a name="v:importQualified" class="def">importQualified</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>imported <code>qualified</code>?
</p></dd><dt class="src"><a name="v:importSrc" class="def">importSrc</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>imported with <code>{-# SOURCE #-}</code>?
</p></dd><dt class="src"><a name="v:importPkg" class="def">importPkg</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></dt><dd class="doc"><p>imported with explicit package name
</p></dd><dt class="src"><a name="v:importAs" class="def">importAs</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></dt><dd class="doc"><p>optional alias name in an <code>as</code> clause.
</p></dd><dt class="src"><a name="v:importSpecs" class="def">importSpecs</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a>, [<a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</a>])</dt><dd class="doc"><p>optional list of import specifications.
 The <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></code> is <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#v:True">True</a></code> if the names are excluded
 by <code>hiding</code>.
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ImportDecl" class="caption collapser" onclick="toggleSection('i:ImportDecl')">Instances</p><div id="section.i:ImportDecl" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportDecl">ImportDecl</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:ImportSpec" class="def">ImportSpec</a>  <a href="src/Language-Haskell-Exts-Syntax.html#ImportSpec" class="link">Source</a></p><div class="doc"><p>An import specification, representing a single explicit item imported
   (or hidden) from a module.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IVar" class="def">IVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>variable
</p></td></tr><tr><td class="src"><a name="v:IAbs" class="def">IAbs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p><code>T</code>:
   the name of a class, datatype or type synonym.
</p></td></tr><tr><td class="src"><a name="v:IThingAll" class="def">IThingAll</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p><code>T(..)</code>:
   a class imported with all of its methods, or
   a datatype imported with all of its constructors.
</p></td></tr><tr><td class="src"><a name="v:IThingWith" class="def">IThingWith</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a>]</td><td class="doc"><p><code>T(C_1,...,C_n)</code>:
   a class imported with some of its methods, or
   a datatype imported with some of its constructors.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:ImportSpec" class="caption collapser" onclick="toggleSection('i:ImportSpec')">Instances</p><div id="section.i:ImportSpec" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:ImportSpec">ImportSpec</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:Assoc" class="def">Assoc</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Assoc" class="link">Source</a></p><div class="doc"><p>Associativity of an operator.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AssocNone" class="def">AssocNone</a></td><td class="doc"><p>non-associative operator (declared with <code>infix</code>)
</p></td></tr><tr><td class="src"><a name="v:AssocLeft" class="def">AssocLeft</a></td><td class="doc"><p>left-associative operator (declared with <code>infixl</code>).
</p></td></tr><tr><td class="src"><a name="v:AssocRight" class="def">AssocRight</a></td><td class="doc"><p>right-associative operator (declared with <code>infixr</code>)
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Assoc" class="caption collapser" onclick="toggleSection('i:Assoc')">Instances</p><div id="section.i:Assoc" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:2">Declarations
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Decl" class="def">Decl</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Decl" class="link">Source</a></p><div class="doc"><p>A top-level declaration.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TypeDecl" class="def">TypeDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>A type declaration
</p></td></tr><tr><td class="src"><a name="v:TypeFamDecl" class="def">TypeFamDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)</td><td class="doc"><p>A type family declaration
</p></td></tr><tr><td class="src"><a name="v:DataDecl" class="def">DataDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]</td><td class="doc"><p>A data OR newtype declaration
</p></td></tr><tr><td class="src"><a name="v:GDataDecl" class="def">GDataDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]</td><td class="doc"><p>A data OR newtype declaration, GADT style
</p></td></tr><tr><td class="src"><a name="v:DataFamDecl" class="def">DataFamDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)</td><td class="doc"><p>A data family declaration
</p></td></tr><tr><td class="src"><a name="v:TypeInsDecl" class="def">TypeInsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>A type family instance declaration
</p></td></tr><tr><td class="src"><a name="v:DataInsDecl" class="def">DataInsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> [<a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]</td><td class="doc"><p>A data family instance declaration
</p></td></tr><tr><td class="src"><a name="v:GDataInsDecl" class="def">GDataInsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]</td><td class="doc"><p>A data family instance declaration, GADT style
</p></td></tr><tr><td class="src"><a name="v:ClassDecl" class="def">ClassDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a>]</td><td class="doc"><p>A declaration of a type class
</p></td></tr><tr><td class="src"><a name="v:InstDecl" class="def">InstDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a>]</td><td class="doc"><p>An declaration of a type class instance
</p></td></tr><tr><td class="src"><a name="v:DerivDecl" class="def">DerivDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]</td><td class="doc"><p>A standalone deriving declaration
</p></td></tr><tr><td class="src"><a name="v:InfixDecl" class="def">InfixDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Assoc">Assoc</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</a>]</td><td class="doc"><p>A declaration of operator fixity
</p></td></tr><tr><td class="src"><a name="v:DefaultDecl" class="def">DefaultDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]</td><td class="doc"><p>A declaration of default types
</p></td></tr><tr><td class="src"><a name="v:SpliceDecl" class="def">SpliceDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>A Template Haskell splicing declaration
</p></td></tr><tr><td class="src"><a name="v:TypeSig" class="def">TypeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>A type signature declaration
</p></td></tr><tr><td class="src"><a name="v:FunBind" class="def">FunBind</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a>]</td><td class="doc"><p>A set of function binding clauses
</p></td></tr><tr><td class="src"><a name="v:PatBind" class="def">PatBind</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>) <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc"><p>A pattern binding
</p></td></tr><tr><td class="src"><a name="v:ForImp" class="def">ForImp</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>A foreign import declaration
</p></td></tr><tr><td class="src"><a name="v:ForExp" class="def">ForExp</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>A foreign export declaration
</p></td></tr><tr><td class="src"><a name="v:RulePragmaDecl" class="def">RulePragmaDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</a>]</td><td class="doc"><p>A RULES pragma
</p></td></tr><tr><td class="src"><a name="v:DeprPragmaDecl" class="def">DeprPragmaDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [([<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>], <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>)]</td><td class="doc"><p>A DEPRECATED pragma
</p></td></tr><tr><td class="src"><a name="v:WarnPragmaDecl" class="def">WarnPragmaDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [([<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>], <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a>)]</td><td class="doc"><p>A WARNING pragma
</p></td></tr><tr><td class="src"><a name="v:InlineSig" class="def">InlineSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>An INLINE pragma
</p></td></tr><tr><td class="src"><a name="v:InlineConlikeSig" class="def">InlineConlikeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>An INLINE CONLIKE pragma
</p></td></tr><tr><td class="src"><a name="v:SpecSig" class="def">SpecSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]</td><td class="doc"><p>A SPECIALISE pragma
</p></td></tr><tr><td class="src"><a name="v:SpecInlineSig" class="def">SpecInlineSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]</td><td class="doc"><p>A SPECIALISE INLINE pragma
</p></td></tr><tr><td class="src"><a name="v:InstSig" class="def">InstSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]</td><td class="doc"><p>A SPECIALISE instance pragma
</p></td></tr><tr><td class="src"><a name="v:AnnPragma" class="def">AnnPragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc"><p>An ANN pragma
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Decl" class="caption collapser" onclick="toggleSection('i:Decl')">Instances</p><div id="section.i:Decl" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Parser.html#t:Parseable">Parseable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</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:Binds" class="def">Binds</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Binds" class="link">Source</a></p><div class="doc"><p>A binding group inside a <code>let</code> or <code>where</code> clause.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BDecls" class="def">BDecls</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>]</td><td class="doc"><p>An ordinary binding group
</p></td></tr><tr><td class="src"><a name="v:IPBinds" class="def">IPBinds</a> [<a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a>]</td><td class="doc"><p>A binding group for implicit parameters
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Binds" class="caption collapser" onclick="toggleSection('i:Binds')">Instances</p><div id="section.i:Binds" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</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:IPBind" class="def">IPBind</a>  <a href="src/Language-Haskell-Exts-Syntax.html#IPBind" class="link">Source</a></p><div class="doc"><p>A binding of an implicit parameter.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IPBind" class="def">IPBind</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:IPBind" class="caption collapser" onclick="toggleSection('i:IPBind')">Instances</p><div id="section.i:IPBind" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPBind">IPBind</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:3">Type classes and instances
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ClassDecl" class="def">ClassDecl</a>  <a href="src/Language-Haskell-Exts-Syntax.html#ClassDecl" class="link">Source</a></p><div class="doc"><p>Declarations inside a class declaration.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ClsDecl" class="def">ClsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc"><p>ordinary declaration
</p></td></tr><tr><td class="src"><a name="v:ClsDataFam" class="def">ClsDataFam</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)</td><td class="doc"><p>declaration of an associated data type
</p></td></tr><tr><td class="src"><a name="v:ClsTyFam" class="def">ClsTyFam</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>)</td><td class="doc"><p>declaration of an associated type synonym
</p></td></tr><tr><td class="src"><a name="v:ClsTyDef" class="def">ClsTyDef</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>default choice for an associated type synonym
</p></td></tr></table></div><div class="subs instances"><p id="control.i:ClassDecl" class="caption collapser" onclick="toggleSection('i:ClassDecl')">Instances</p><div id="section.i:ClassDecl" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:ClassDecl">ClassDecl</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:InstDecl" class="def">InstDecl</a>  <a href="src/Language-Haskell-Exts-Syntax.html#InstDecl" class="link">Source</a></p><div class="doc"><p>Declarations inside an instance declaration.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:InsDecl" class="def">InsDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></td><td class="doc"><p>ordinary declaration
</p></td></tr><tr><td class="src"><a name="v:InsType" class="def">InsType</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>an associated type definition
</p></td></tr><tr><td class="src"><a name="v:InsData" class="def">InsData</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> [<a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]</td><td class="doc"><p>an associated data type implementation
</p></td></tr><tr><td class="src"><a name="v:InsGData" class="def">InsGData</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Deriving">Deriving</a>]</td><td class="doc"><p>an associated data type implemented using GADT style
</p></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="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:InstDecl">InstDecl</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:Deriving" class="def">Deriving</a> = (<a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a>, [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>])<a href="src/Language-Haskell-Exts-Syntax.html#Deriving" class="link">Source</a></p><div class="doc"><p>A single derived instance, which may have arguments since it may be a MPTC.
</p></div></div><h2 id="g:4">Data type declarations
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:DataOrNew" class="def">DataOrNew</a>  <a href="src/Language-Haskell-Exts-Syntax.html#DataOrNew" class="link">Source</a></p><div class="doc"><p>A flag stating whether a declaration is a data or newtype declaration.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DataType" class="def">DataType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NewType" class="def">NewType</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:DataOrNew" class="caption collapser" onclick="toggleSection('i:DataOrNew')">Instances</p><div id="section.i:DataOrNew" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:DataOrNew">DataOrNew</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:ConDecl" class="def">ConDecl</a>  <a href="src/Language-Haskell-Exts-Syntax.html#ConDecl" class="link">Source</a></p><div class="doc"><p>Declaration of an ordinary data constructor.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ConDecl" class="def">ConDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a>]</td><td class="doc"><p>ordinary data constructor
</p></td></tr><tr><td class="src"><a name="v:InfixConDecl" class="def">InfixConDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a></td><td class="doc"><p>infix data constructor
</p></td></tr><tr><td class="src"><a name="v:RecDecl" class="def">RecDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [([<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>], <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a>)]</td><td class="doc"><p>record constructor
</p></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="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</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:QualConDecl" class="def">QualConDecl</a>  <a href="src/Language-Haskell-Exts-Syntax.html#QualConDecl" class="link">Source</a></p><div class="doc"><p>A single constructor declaration within a data type declaration,
   which may have an existential quantification binding.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:QualConDecl" class="def">QualConDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:ConDecl">ConDecl</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:QualConDecl" class="caption collapser" onclick="toggleSection('i:QualConDecl')">Instances</p><div id="section.i:QualConDecl" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualConDecl">QualConDecl</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:GadtDecl" class="def">GadtDecl</a>  <a href="src/Language-Haskell-Exts-Syntax.html#GadtDecl" class="link">Source</a></p><div class="doc"><p>A single constructor declaration in a GADT data type declaration.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GadtDecl" class="def">GadtDecl</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:GadtDecl" class="caption collapser" onclick="toggleSection('i:GadtDecl')">Instances</p><div id="section.i:GadtDecl" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:GadtDecl">GadtDecl</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:BangType" class="def">BangType</a>  <a href="src/Language-Haskell-Exts-Syntax.html#BangType" class="link">Source</a></p><div class="doc"><p>The type of a constructor argument or field, optionally including
   a strictness annotation.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BangedTy" class="def">BangedTy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>strict component, marked with &quot;<code>!</code>&quot;
</p></td></tr><tr><td class="src"><a name="v:UnBangedTy" class="def">UnBangedTy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>non-strict component
</p></td></tr><tr><td class="src"><a name="v:UnpackedTy" class="def">UnpackedTy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>unboxed component, marked with an UNPACK pragma
</p></td></tr></table></div><div class="subs instances"><p id="control.i:BangType" class="caption collapser" onclick="toggleSection('i:BangType')">Instances</p><div id="section.i:BangType" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:BangType">BangType</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:5">Function bindings
</h2><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Match" class="def">Match</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Match" class="link">Source</a></p><div class="doc"><p>Clauses of a function binding.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Match" class="def">Match</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>) <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Match" class="caption collapser" onclick="toggleSection('i:Match')">Instances</p><div id="section.i:Match" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Match">Match</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:Rhs" class="def">Rhs</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Rhs" class="link">Source</a></p><div class="doc"><p>The right hand side of a function or pattern binding.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UnGuardedRhs" class="def">UnGuardedRhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>unguarded right hand side (<em>exp</em>)
</p></td></tr><tr><td class="src"><a name="v:GuardedRhss" class="def">GuardedRhss</a> [<a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a>]</td><td class="doc"><p>guarded right hand side (<em>gdrhs</em>)
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Rhs" class="caption collapser" onclick="toggleSection('i:Rhs')">Instances</p><div id="section.i:Rhs" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rhs">Rhs</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:GuardedRhs" class="def">GuardedRhs</a>  <a href="src/Language-Haskell-Exts-Syntax.html#GuardedRhs" class="link">Source</a></p><div class="doc"><p>A guarded right hand side <code>|</code> <em>stmts</em> <code>=</code> <em>exp</em>.
   The guard is a series of statements when using pattern guards,
   otherwise it will be a single qualifier expression.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GuardedRhs" class="def">GuardedRhs</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:GuardedRhs" class="caption collapser" onclick="toggleSection('i:GuardedRhs')">Instances</p><div id="section.i:GuardedRhs" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedRhs">GuardedRhs</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:6">Class Assertions and Contexts
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Context" class="def">Context</a> = [<a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a>]<a href="src/Language-Haskell-Exts-Syntax.html#Context" class="link">Source</a></p><div class="doc"><p>A context is a set of assertions
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FunDep" class="def">FunDep</a>  <a href="src/Language-Haskell-Exts-Syntax.html#FunDep" class="link">Source</a></p><div class="doc"><p>A functional dependency, given on the form
   l1 l2 ... ln -&gt; r2 r3 .. rn
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FunDep" class="def">FunDep</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>] [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:FunDep" class="caption collapser" onclick="toggleSection('i:FunDep')">Instances</p><div id="section.i:FunDep" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:FunDep">FunDep</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:Asst" class="def">Asst</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Asst" class="link">Source</a></p><div class="doc"><p>Class assertions.
   In Haskell 98, the argument would be a <em>tyvar</em>, but this definition
   allows multiple parameters, and allows them to be <em>type</em>s.
   Also extended with support for implicit parameters and equality constraints.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ClassA" class="def">ClassA</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]</td><td class="doc"><p>ordinary class assertion
</p></td></tr><tr><td class="src"><a name="v:InfixA" class="def">InfixA</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>class assertion where the class name is given infix
</p></td></tr><tr><td class="src"><a name="v:IParam" class="def">IParam</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>implicit parameter assertion
</p></td></tr><tr><td class="src"><a name="v:EqualP" class="def">EqualP</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>type equality constraint
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Asst" class="caption collapser" onclick="toggleSection('i:Asst')">Instances</p><div id="section.i:Asst" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Asst">Asst</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:7">Types
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Type" class="def">Type</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Type" class="link">Source</a></p><div class="doc"><p>A type qualified with a context.
   An unqualified type has an empty context.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TyForall" class="def">TyForall</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a>]) <a href="Language-Haskell-Exts-Syntax.html#t:Context">Context</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>qualified type
</p></td></tr><tr><td class="src"><a name="v:TyFun" class="def">TyFun</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>function type
</p></td></tr><tr><td class="src"><a name="v:TyTuple" class="def">TyTuple</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a>]</td><td class="doc"><p>tuple type, possibly boxed
</p></td></tr><tr><td class="src"><a name="v:TyList" class="def">TyList</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>list syntax, e.g. [a], as opposed to [] a
</p></td></tr><tr><td class="src"><a name="v:TyApp" class="def">TyApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>application of a type constructor
</p></td></tr><tr><td class="src"><a name="v:TyVar" class="def">TyVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>type variable
</p></td></tr><tr><td class="src"><a name="v:TyCon" class="def">TyCon</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>named type or type constructor
</p></td></tr><tr><td class="src"><a name="v:TyParen" class="def">TyParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>type surrounded by parentheses
</p></td></tr><tr><td class="src"><a name="v:TyInfix" class="def">TyInfix</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>infix type constructor
</p></td></tr><tr><td class="src"><a name="v:TyKind" class="def">TyKind</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc"><p>type with explicit kind signature
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Type" class="caption collapser" onclick="toggleSection('i:Type')">Instances</p><div id="section.i:Type" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Parser.html#t:Parseable">Parseable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</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:Boxed" class="def">Boxed</a>  <a href="src/Language-Haskell-Exts-Annotated-Syntax.html#Boxed" class="link">Source</a></p><div class="doc"><p>Flag denoting whether a tuple is boxed or unboxed.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Boxed" class="def">Boxed</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Unboxed" class="def">Unboxed</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Boxed" class="caption collapser" onclick="toggleSection('i:Boxed')">Instances</p><div id="section.i:Boxed" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</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:Kind" class="def">Kind</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Kind" class="link">Source</a></p><div class="doc"><p>An explicit kind annotation.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:KindStar" class="def">KindStar</a></td><td class="doc"><p><code>*</code>, the kind of types
</p></td></tr><tr><td class="src"><a name="v:KindBang" class="def">KindBang</a></td><td class="doc"><p><code>!</code>, the kind of unboxed types
</p></td></tr><tr><td class="src"><a name="v:KindFn" class="def">KindFn</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc"><p><code>-&gt;</code>, the kind of a type constructor
</p></td></tr><tr><td class="src"><a name="v:KindParen" class="def">KindParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc"><p>a kind surrounded by parentheses
</p></td></tr><tr><td class="src"><a name="v:KindVar" class="def">KindVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>a kind variable (as of yet unsupported by compilers)
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Kind" class="caption collapser" onclick="toggleSection('i:Kind')">Instances</p><div id="section.i:Kind" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</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:TyVarBind" class="def">TyVarBind</a>  <a href="src/Language-Haskell-Exts-Syntax.html#TyVarBind" class="link">Source</a></p><div class="doc"><p>A type variable declaration, optionally with an explicit kind annotation.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:KindedVar" class="def">KindedVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Kind">Kind</a></td><td class="doc"><p>variable binding with kind annotation
</p></td></tr><tr><td class="src"><a name="v:UnkindedVar" class="def">UnkindedVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>ordinary variable binding
</p></td></tr></table></div><div class="subs instances"><p id="control.i:TyVarBind" class="caption collapser" onclick="toggleSection('i:TyVarBind')">Instances</p><div id="section.i:TyVarBind" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:TyVarBind">TyVarBind</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:8">Expressions
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Exp" class="def">Exp</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Exp" class="link">Source</a></p><div class="doc"><p>Haskell expressions.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Var" class="def">Var</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>variable
</p></td></tr><tr><td class="src"><a name="v:IPVar" class="def">IPVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a></td><td class="doc"><p>implicit parameter variable
</p></td></tr><tr><td class="src"><a name="v:Con" class="def">Con</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>data constructor
</p></td></tr><tr><td class="src"><a name="v:Lit" class="def">Lit</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc"><p>literal constant
</p></td></tr><tr><td class="src"><a name="v:InfixApp" class="def">InfixApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>infix application
</p></td></tr><tr><td class="src"><a name="v:App" class="def">App</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>ordinary application
</p></td></tr><tr><td class="src"><a name="v:NegApp" class="def">NegApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>negation expression <code>-<em>exp</em></code> (unary minus)
</p></td></tr><tr><td class="src"><a name="v:Lambda" class="def">Lambda</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>lambda expression
</p></td></tr><tr><td class="src"><a name="v:Let" class="def">Let</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>local declarations with <code>let</code> ... <code>in</code> ...
</p></td></tr><tr><td class="src"><a name="v:If" class="def">If</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p><code>if</code> <em>exp</em> <code>then</code> <em>exp</em> <code>else</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:Case" class="def">Case</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a>]</td><td class="doc"><p><code>case</code> <em>exp</em> <code>of</code> <em>alts</em>
</p></td></tr><tr><td class="src"><a name="v:Do" class="def">Do</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]</td><td class="doc"><p><code>do</code>-expression:
   the last statement in the list
   should be an expression.
</p></td></tr><tr><td class="src"><a name="v:MDo" class="def">MDo</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]</td><td class="doc"><p><code>mdo</code>-expression
</p></td></tr><tr><td class="src"><a name="v:Tuple" class="def">Tuple</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]</td><td class="doc"><p>tuple expression
</p></td></tr><tr><td class="src"><a name="v:TupleSection" class="def">TupleSection</a> [<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]</td><td class="doc"><p>tuple section expression, e.g. <code>(,,3)</code>
</p></td></tr><tr><td class="src"><a name="v:List" class="def">List</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]</td><td class="doc"><p>list expression
</p></td></tr><tr><td class="src"><a name="v:Paren" class="def">Paren</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>parenthesised expression
</p></td></tr><tr><td class="src"><a name="v:LeftSection" class="def">LeftSection</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a></td><td class="doc"><p>left section <code>(</code><em>exp</em> <em>qop</em><code>)</code>
</p></td></tr><tr><td class="src"><a name="v:RightSection" class="def">RightSection</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>right section <code>(</code><em>qop</em> <em>exp</em><code>)</code>
</p></td></tr><tr><td class="src"><a name="v:RecConstr" class="def">RecConstr</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a>]</td><td class="doc"><p>record construction expression
</p></td></tr><tr><td class="src"><a name="v:RecUpdate" class="def">RecUpdate</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a>]</td><td class="doc"><p>record update expression
</p></td></tr><tr><td class="src"><a name="v:EnumFrom" class="def">EnumFrom</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>unbounded arithmetic sequence,
   incrementing by 1: <code>[from ..]</code>
</p></td></tr><tr><td class="src"><a name="v:EnumFromTo" class="def">EnumFromTo</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>bounded arithmetic sequence,
   incrementing by 1 <code>[from .. to]</code>
</p></td></tr><tr><td class="src"><a name="v:EnumFromThen" class="def">EnumFromThen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>unbounded arithmetic sequence,
   with first two elements given <code>[from, then ..]</code>
</p></td></tr><tr><td class="src"><a name="v:EnumFromThenTo" class="def">EnumFromThenTo</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>bounded arithmetic sequence,
   with first two elements given <code>[from, then .. to]</code>
</p></td></tr><tr><td class="src"><a name="v:ListComp" class="def">ListComp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a>]</td><td class="doc"><p>ordinary list comprehension
</p></td></tr><tr><td class="src"><a name="v:ParComp" class="def">ParComp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> [[<a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a>]]</td><td class="doc"><p>parallel list comprehension
</p></td></tr><tr><td class="src"><a name="v:ExpTypeSig" class="def">ExpTypeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>expression with explicit type signature
</p></td></tr><tr><td class="src"><a name="v:VarQuote" class="def">VarQuote</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p><code>'x</code> for template haskell reifying of expressions
</p></td></tr><tr><td class="src"><a name="v:TypQuote" class="def">TypQuote</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p><code>''T</code> for template haskell reifying of types
</p></td></tr><tr><td class="src"><a name="v:BracketExp" class="def">BracketExp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a></td><td class="doc"><p>template haskell bracket expression
</p></td></tr><tr><td class="src"><a name="v:SpliceExp" class="def">SpliceExp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc"><p>template haskell splice expression
</p></td></tr><tr><td class="src"><a name="v:QuasiQuote" class="def">QuasiQuote</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>quasi-quotaion: <code>[$<em>name</em>| <em>string</em> |]</code>
</p></td></tr><tr><td class="src"><a name="v:XTag" class="def">XTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]</td><td class="doc"><p>xml element, with attributes and children
</p></td></tr><tr><td class="src"><a name="v:XETag" class="def">XETag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>)</td><td class="doc"><p>empty xml element, with attributes
</p></td></tr><tr><td class="src"><a name="v:XPcdata" class="def">XPcdata</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>PCDATA child element
</p></td></tr><tr><td class="src"><a name="v:XExpTag" class="def">XExpTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>escaped haskell expression inside xml
</p></td></tr><tr><td class="src"><a name="v:XChildTag" class="def">XChildTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a>]</td><td class="doc"><p>children of an xml element
</p></td></tr><tr><td class="src"><a name="v:CorePragma" class="def">CorePragma</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>CORE pragma
</p></td></tr><tr><td class="src"><a name="v:SCCPragma" class="def">SCCPragma</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>SCC pragma
</p></td></tr><tr><td class="src"><a name="v:GenPragma" class="def">GenPragma</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>) (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a>) <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>GENERATED pragma
</p></td></tr><tr><td class="src"><a name="v:Proc" class="def">Proc</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>arrows proc: <code>proc</code> <em>pat</em> <code>-&gt;</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:LeftArrApp" class="def">LeftArrApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>arrow application (from left): <em>exp</em> <code>-&lt;</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:RightArrApp" class="def">RightArrApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>arrow application (from right): <em>exp</em> <code>&gt;-</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:LeftArrHighApp" class="def">LeftArrHighApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>higher-order arrow application (from left): <em>exp</em> <code>-&lt;&lt;</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:RightArrHighApp" class="def">RightArrHighApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>higher-order arrow application (from right): <em>exp</em> <code>&gt;&gt;-</code> <em>exp</em>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Exp" class="caption collapser" onclick="toggleSection('i:Exp')">Instances</p><div id="section.i:Exp" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Parser.html#t:Parseable">Parseable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</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:Stmt" class="def">Stmt</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Stmt" class="link">Source</a></p><div class="doc"><p>A statement, representing both a <em>stmt</em> in a <code>do</code>-expression,
   an ordinary <em>qual</em> in a list comprehension, as well as a <em>stmt</em>
   in a pattern guard.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Generator" class="def">Generator</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>a generator: <em>pat</em> <code>&lt;-</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:Qualifier" class="def">Qualifier</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>an <em>exp</em> by itself: in a <code>do</code>-expression,
   an action whose result is discarded;
   in a list comprehension and pattern guard,
   a guard expression
</p></td></tr><tr><td class="src"><a name="v:LetStmt" class="def">LetStmt</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc"><p>local bindings
</p></td></tr><tr><td class="src"><a name="v:RecStmt" class="def">RecStmt</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]</td><td class="doc"><p>a recursive binding group for arrows
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Stmt" class="caption collapser" onclick="toggleSection('i:Stmt')">Instances</p><div id="section.i:Stmt" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</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:QualStmt" class="def">QualStmt</a>  <a href="src/Language-Haskell-Exts-Syntax.html#QualStmt" class="link">Source</a></p><div class="doc"><p>A general <em>transqual</em> in a list comprehension,
   which could potentially be a transform of the kind
   enabled by TransformListComp.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:QualStmt" class="def">QualStmt</a> <a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a></td><td class="doc"><p>an ordinary statement
</p></td></tr><tr><td class="src"><a name="v:ThenTrans" class="def">ThenTrans</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p><code>then</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:ThenBy" class="def">ThenBy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p><code>then</code> <em>exp</em> <code>by</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:GroupBy" class="def">GroupBy</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p><code>then</code> <code>group</code> <code>by</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:GroupUsing" class="def">GroupUsing</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p><code>then</code> <code>group</code> <code>using</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:GroupByUsing" class="def">GroupByUsing</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p><code>then</code> <code>group</code> <code>by</code> <em>exp</em> <code>using</code> <em>exp</em>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:QualStmt" class="caption collapser" onclick="toggleSection('i:QualStmt')">Instances</p><div id="section.i:QualStmt" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:QualStmt">QualStmt</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:FieldUpdate" class="def">FieldUpdate</a>  <a href="src/Language-Haskell-Exts-Syntax.html#FieldUpdate" class="link">Source</a></p><div class="doc"><p>An <em>fbind</em> in a labeled construction or update expression.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FieldUpdate" class="def">FieldUpdate</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>ordinary label-expresion pair
</p></td></tr><tr><td class="src"><a name="v:FieldPun" class="def">FieldPun</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>record field pun
</p></td></tr><tr><td class="src"><a name="v:FieldWildcard" class="def">FieldWildcard</a></td><td class="doc"><p>record field wildcard
</p></td></tr></table></div><div class="subs instances"><p id="control.i:FieldUpdate" class="caption collapser" onclick="toggleSection('i:FieldUpdate')">Instances</p><div id="section.i:FieldUpdate" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:FieldUpdate">FieldUpdate</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:Alt" class="def">Alt</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Alt" class="link">Source</a></p><div class="doc"><p>An <em>alt</em> alternative in a <code>case</code> expression.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Alt" class="def">Alt</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a> <a href="Language-Haskell-Exts-Syntax.html#t:Binds">Binds</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Alt" class="caption collapser" onclick="toggleSection('i:Alt')">Instances</p><div id="section.i:Alt" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Alt">Alt</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:GuardedAlts" class="def">GuardedAlts</a>  <a href="src/Language-Haskell-Exts-Syntax.html#GuardedAlts" class="link">Source</a></p><div class="doc"><p>The right-hand sides of a <code>case</code> alternative,
   which may be a single right-hand side or a
   set of guarded ones.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UnGuardedAlt" class="def">UnGuardedAlt</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p><code>-&gt;</code> <em>exp</em>
</p></td></tr><tr><td class="src"><a name="v:GuardedAlts" class="def">GuardedAlts</a> [<a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a>]</td><td class="doc"><p><em>gdpat</em>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:GuardedAlts" class="caption collapser" onclick="toggleSection('i:GuardedAlts')">Instances</p><div id="section.i:GuardedAlts" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlts">GuardedAlts</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:GuardedAlt" class="def">GuardedAlt</a>  <a href="src/Language-Haskell-Exts-Syntax.html#GuardedAlt" class="link">Source</a></p><div class="doc"><p>A guarded case alternative <code>|</code> <em>stmts</em> <code>-&gt;</code> <em>exp</em>.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GuardedAlt" class="def">GuardedAlt</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>] <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:GuardedAlt" class="caption collapser" onclick="toggleSection('i:GuardedAlt')">Instances</p><div id="section.i:GuardedAlt" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:GuardedAlt">GuardedAlt</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:XAttr" class="def">XAttr</a>  <a href="src/Language-Haskell-Exts-Syntax.html#XAttr" class="link">Source</a></p><div class="doc"><p>An xml attribute, which is a name-expression pair.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:XAttr" class="def">XAttr</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:XAttr" class="caption collapser" onclick="toggleSection('i:XAttr')">Instances</p><div id="section.i:XAttr" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:XAttr">XAttr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:9">Patterns
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Pat" class="def">Pat</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Pat" class="link">Source</a></p><div class="doc"><p>A pattern, to be matched against a value.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PVar" class="def">PVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>variable
</p></td></tr><tr><td class="src"><a name="v:PLit" class="def">PLit</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc"><p>literal constant
</p></td></tr><tr><td class="src"><a name="v:PNeg" class="def">PNeg</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>negated pattern
</p></td></tr><tr><td class="src"><a name="v:PNPlusK" class="def">PNPlusK</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a></td><td class="doc"><p>n+k pattern
</p></td></tr><tr><td class="src"><a name="v:PInfixApp" class="def">PInfixApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>pattern with an infix data constructor
</p></td></tr><tr><td class="src"><a name="v:PApp" class="def">PApp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]</td><td class="doc"><p>data constructor and argument patterns
</p></td></tr><tr><td class="src"><a name="v:PTuple" class="def">PTuple</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]</td><td class="doc"><p>tuple pattern
</p></td></tr><tr><td class="src"><a name="v:PList" class="def">PList</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]</td><td class="doc"><p>list pattern
</p></td></tr><tr><td class="src"><a name="v:PParen" class="def">PParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>parenthesized pattern
</p></td></tr><tr><td class="src"><a name="v:PRec" class="def">PRec</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a>]</td><td class="doc"><p>labelled pattern, record style
</p></td></tr><tr><td class="src"><a name="v:PAsPat" class="def">PAsPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p><code>@</code>-pattern
</p></td></tr><tr><td class="src"><a name="v:PWildCard" class="def">PWildCard</a></td><td class="doc"><p>wildcard pattern: <code>_</code>
</p></td></tr><tr><td class="src"><a name="v:PIrrPat" class="def">PIrrPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>irrefutable pattern: <code>~<em>pat</em></code>
</p></td></tr><tr><td class="src"><a name="v:PatTypeSig" class="def">PatTypeSig</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>pattern with type signature
</p></td></tr><tr><td class="src"><a name="v:PViewPat" class="def">PViewPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>view patterns of the form <code>(<em>exp</em> -&gt; <em>pat</em>)</code>
</p></td></tr><tr><td class="src"><a name="v:PRPat" class="def">PRPat</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>]</td><td class="doc"><p>regular list pattern
</p></td></tr><tr><td class="src"><a name="v:PXTag" class="def">PXTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>) [<a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>]</td><td class="doc"><p>XML element pattern
</p></td></tr><tr><td class="src"><a name="v:PXETag" class="def">PXETag</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> [<a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a>] (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a>)</td><td class="doc"><p>XML singleton element pattern
</p></td></tr><tr><td class="src"><a name="v:PXPcdata" class="def">PXPcdata</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>XML PCDATA pattern
</p></td></tr><tr><td class="src"><a name="v:PXPatTag" class="def">PXPatTag</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>XML embedded pattern
</p></td></tr><tr><td class="src"><a name="v:PXRPats" class="def">PXRPats</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>]</td><td class="doc"><p>XML regular list pattern
</p></td></tr><tr><td class="src"><a name="v:PExplTypeArg" class="def">PExplTypeArg</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>Explicit generics style type argument e.g. <code>f {| Int |} x = ...</code>
</p></td></tr><tr><td class="src"><a name="v:PQuasiQuote" class="def">PQuasiQuote</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>quasi quote patter: <code>[$<em>name</em>| <em>string</em> |]</code>
</p></td></tr><tr><td class="src"><a name="v:PBangPat" class="def">PBangPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>strict (bang) pattern: <code>f !x = ...</code>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Pat" class="caption collapser" onclick="toggleSection('i:Pat')">Instances</p><div id="section.i:Pat" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Parser.html#t:Parseable">Parseable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</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:PatField" class="def">PatField</a>  <a href="src/Language-Haskell-Exts-Syntax.html#PatField" class="link">Source</a></p><div class="doc"><p>An <em>fpat</em> in a labeled record pattern.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PFieldPat" class="def">PFieldPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>ordinary label-pattern pair
</p></td></tr><tr><td class="src"><a name="v:PFieldPun" class="def">PFieldPun</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>record field pun
</p></td></tr><tr><td class="src"><a name="v:PFieldWildcard" class="def">PFieldWildcard</a></td><td class="doc"><p>record field wildcard
</p></td></tr></table></div><div class="subs instances"><p id="control.i:PatField" class="caption collapser" onclick="toggleSection('i:PatField')">Instances</p><div id="section.i:PatField" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:PatField">PatField</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:PXAttr" class="def">PXAttr</a>  <a href="src/Language-Haskell-Exts-Syntax.html#PXAttr" class="link">Source</a></p><div class="doc"><p>An XML attribute in a pattern.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PXAttr" class="def">PXAttr</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:PXAttr" class="caption collapser" onclick="toggleSection('i:PXAttr')">Instances</p><div id="section.i:PXAttr" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:PXAttr">PXAttr</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:RPat" class="def">RPat</a>  <a href="src/Language-Haskell-Exts-Syntax.html#RPat" class="link">Source</a></p><div class="doc"><p>An entity in a regular pattern.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RPOp" class="def">RPOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a></td><td class="doc"><p>operator pattern, e.g. pat*
</p></td></tr><tr><td class="src"><a name="v:RPEither" class="def">RPEither</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc"><p>choice pattern, e.g. (1 | 2)
</p></td></tr><tr><td class="src"><a name="v:RPSeq" class="def">RPSeq</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a>]</td><td class="doc"><p>sequence pattern, e.g. (| 1, 2, 3 |)
</p></td></tr><tr><td class="src"><a name="v:RPGuard" class="def">RPGuard</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Stmt">Stmt</a>]</td><td class="doc"><p>guarded pattern, e.g. (| p | p &lt; 3 |)
</p></td></tr><tr><td class="src"><a name="v:RPCAs" class="def">RPCAs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc"><p>non-linear variable binding, e.g. (foo@:(1 | 2))*
</p></td></tr><tr><td class="src"><a name="v:RPAs" class="def">RPAs</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc"><p>linear variable binding, e.g. foo@(1 | 2)
</p></td></tr><tr><td class="src"><a name="v:RPParen" class="def">RPParen</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc"><p>parenthesised pattern, e.g. (2*)
</p></td></tr><tr><td class="src"><a name="v:RPPat" class="def">RPPat</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>an ordinary pattern
</p></td></tr></table></div><div class="subs instances"><p id="control.i:RPat" class="caption collapser" onclick="toggleSection('i:RPat')">Instances</p><div id="section.i:RPat" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPat">RPat</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:RPatOp" class="def">RPatOp</a>  <a href="src/Language-Haskell-Exts-Syntax.html#RPatOp" class="link">Source</a></p><div class="doc"><p>A regular pattern operator.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RPStar" class="def">RPStar</a></td><td class="doc"><p><code>*</code> = 0 or more
</p></td></tr><tr><td class="src"><a name="v:RPStarG" class="def">RPStarG</a></td><td class="doc"><p><code>*!</code> = 0 or more, greedy
</p></td></tr><tr><td class="src"><a name="v:RPPlus" class="def">RPPlus</a></td><td class="doc"><p><code>+</code> = 1 or more
</p></td></tr><tr><td class="src"><a name="v:RPPlusG" class="def">RPPlusG</a></td><td class="doc"><p><code>+!</code> = 1 or more, greedy
</p></td></tr><tr><td class="src"><a name="v:RPOpt" class="def">RPOpt</a></td><td class="doc"><p><code>?</code> = 0 or 1
</p></td></tr><tr><td class="src"><a name="v:RPOptG" class="def">RPOptG</a></td><td class="doc"><p><code>?!</code> = 0 or 1, greedy
</p></td></tr></table></div><div class="subs instances"><p id="control.i:RPatOp" class="caption collapser" onclick="toggleSection('i:RPatOp')">Instances</p><div id="section.i:RPatOp" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:RPatOp">RPatOp</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:10">Literals
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Literal" class="def">Literal</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Literal" class="link">Source</a></p><div class="doc"><p><em>literal</em>
 Values of this type hold the abstract value of the literal, not the
 precise string representation used.  For example, <code>10</code>, <code>0o12</code> and <code>0xa</code>
 have the same representation.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Char" class="def">Char</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a></td><td class="doc"><p>character literal
</p></td></tr><tr><td class="src"><a name="v:String" class="def">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>string literal
</p></td></tr><tr><td class="src"><a name="v:Int" class="def">Int</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a></td><td class="doc"><p>integer literal
</p></td></tr><tr><td class="src"><a name="v:Frac" class="def">Frac</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Rational">Rational</a></td><td class="doc"><p>floating point literal
</p></td></tr><tr><td class="src"><a name="v:PrimInt" class="def">PrimInt</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a></td><td class="doc"><p>unboxed integer literal
</p></td></tr><tr><td class="src"><a name="v:PrimWord" class="def">PrimWord</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a></td><td class="doc"><p>unboxed word literal
</p></td></tr><tr><td class="src"><a name="v:PrimFloat" class="def">PrimFloat</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Rational">Rational</a></td><td class="doc"><p>unboxed float literal
</p></td></tr><tr><td class="src"><a name="v:PrimDouble" class="def">PrimDouble</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Rational">Rational</a></td><td class="doc"><p>unboxed double literal
</p></td></tr><tr><td class="src"><a name="v:PrimChar" class="def">PrimChar</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a></td><td class="doc"><p>unboxed character literal
</p></td></tr><tr><td class="src"><a name="v:PrimString" class="def">PrimString</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>unboxed string literal
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Literal" class="caption collapser" onclick="toggleSection('i:Literal')">Instances</p><div id="section.i:Literal" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Literal">Literal</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:11">Variables, Constructors and Operators
</h1><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:ModuleName" class="def">ModuleName</a>  <a href="src/Language-Haskell-Exts-Syntax.html#ModuleName" class="link">Source</a></p><div class="doc"><p>The name of a Haskell module.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ModuleName" class="def">ModuleName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ModuleName" class="caption collapser" onclick="toggleSection('i:ModuleName')">Instances</p><div id="section.i:ModuleName" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</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:QName" class="def">QName</a>  <a href="src/Language-Haskell-Exts-Syntax.html#QName" class="link">Source</a></p><div class="doc"><p>This type is used to represent qualified variables, and also
   qualified constructors.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Qual" class="def">Qual</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>name qualified with a module name
</p></td></tr><tr><td class="src"><a name="v:UnQual" class="def">UnQual</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>unqualified local name
</p></td></tr><tr><td class="src"><a name="v:Special" class="def">Special</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</a></td><td class="doc"><p>built-in constructor with special syntax
</p></td></tr></table></div><div class="subs instances"><p id="control.i:QName" class="caption collapser" onclick="toggleSection('i:QName')">Instances</p><div id="section.i:QName" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</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:Name" class="def">Name</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Name" class="link">Source</a></p><div class="doc"><p>This type is used to represent variables, and also constructors.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Ident" class="def">Ident</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p><em>varid</em> or <em>conid</em>.
</p></td></tr><tr><td class="src"><a name="v:Symbol" class="def">Symbol</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p><em>varsym</em> or <em>consym</em>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Name" class="caption collapser" onclick="toggleSection('i:Name')">Instances</p><div id="section.i:Name" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</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:QOp" class="def">QOp</a>  <a href="src/Language-Haskell-Exts-Syntax.html#QOp" class="link">Source</a></p><div class="doc"><p>Possibly qualified infix operators (<em>qop</em>), appearing in expressions.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:QVarOp" class="def">QVarOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>variable operator (<em>qvarop</em>)
</p></td></tr><tr><td class="src"><a name="v:QConOp" class="def">QConOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a></td><td class="doc"><p>constructor operator (<em>qconop</em>)
</p></td></tr></table></div><div class="subs instances"><p id="control.i:QOp" class="caption collapser" onclick="toggleSection('i:QOp')">Instances</p><div id="section.i:QOp" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:QOp">QOp</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:Op" class="def">Op</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Op" class="link">Source</a></p><div class="doc"><p>Operators appearing in <code>infix</code> declarations are never qualified.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:VarOp" class="def">VarOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>variable operator (<em>varop</em>)
</p></td></tr><tr><td class="src"><a name="v:ConOp" class="def">ConOp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>constructor operator (<em>conop</em>)
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Op" class="caption collapser" onclick="toggleSection('i:Op')">Instances</p><div id="section.i:Op" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Op">Op</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:SpecialCon" class="def">SpecialCon</a>  <a href="src/Language-Haskell-Exts-Syntax.html#SpecialCon" class="link">Source</a></p><div class="doc"><p>Constructors with special syntax.
 These names are never qualified, and always refer to builtin type or
 data constructors.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UnitCon" class="def">UnitCon</a></td><td class="doc"><p>unit type and data constructor <code>()</code>
</p></td></tr><tr><td class="src"><a name="v:ListCon" class="def">ListCon</a></td><td class="doc"><p>list type constructor <code>[]</code>
</p></td></tr><tr><td class="src"><a name="v:FunCon" class="def">FunCon</a></td><td class="doc"><p>function type constructor <code>-&gt;</code>
</p></td></tr><tr><td class="src"><a name="v:TupleCon" class="def">TupleCon</a> <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p><em>n</em>-ary tuple type and data
   constructors <code>(,)</code> etc, possibly boxed <code>(#,#)</code>
</p></td></tr><tr><td class="src"><a name="v:Cons" class="def">Cons</a></td><td class="doc"><p>list data constructor <code>(:)</code>
</p></td></tr><tr><td class="src"><a name="v:UnboxedSingleCon" class="def">UnboxedSingleCon</a></td><td class="doc"><p>unboxed singleton tuple constructor <code>(# #)</code>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:SpecialCon" class="caption collapser" onclick="toggleSection('i:SpecialCon')">Instances</p><div id="section.i:SpecialCon" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:SpecialCon">SpecialCon</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:CName" class="def">CName</a>  <a href="src/Language-Haskell-Exts-Syntax.html#CName" class="link">Source</a></p><div class="doc"><p>A name (<em>cname</em>) of a component of a class or data type in an <code>import</code>
   or export specification.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:VarName" class="def">VarName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>name of a method or field
</p></td></tr><tr><td class="src"><a name="v:ConName" class="def">ConName</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc"><p>name of a data constructor
</p></td></tr></table></div><div class="subs instances"><p id="control.i:CName" class="caption collapser" onclick="toggleSection('i:CName')">Instances</p><div id="section.i:CName" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:CName">CName</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:IPName" class="def">IPName</a>  <a href="src/Language-Haskell-Exts-Syntax.html#IPName" class="link">Source</a></p><div class="doc"><p>An implicit parameter name.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IPDup" class="def">IPDup</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>?<em>ident</em>, non-linear implicit parameter
</p></td></tr><tr><td class="src"><a name="v:IPLin" class="def">IPLin</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>%<em>ident</em>, linear implicit parameter
</p></td></tr></table></div><div class="subs instances"><p id="control.i:IPName" class="caption collapser" onclick="toggleSection('i:IPName')">Instances</p><div id="section.i:IPName" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:IPName">IPName</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:XName" class="def">XName</a>  <a href="src/Language-Haskell-Exts-Syntax.html#XName" class="link">Source</a></p><div class="doc"><p>The name of an xml element or attribute,
   possibly qualified with a namespace.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:XName" class="def">XName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:XDomName" class="def">XDomName</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:XName" class="caption collapser" onclick="toggleSection('i:XName')">Instances</p><div id="section.i:XName" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:XName">XName</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:12">Template Haskell
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Bracket" class="def">Bracket</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Bracket" class="link">Source</a></p><div class="doc"><p>A template haskell bracket expression.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ExpBracket" class="def">ExpBracket</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>expression bracket: <code>[| ... |]</code>
</p></td></tr><tr><td class="src"><a name="v:PatBracket" class="def">PatBracket</a> <a href="Language-Haskell-Exts-Syntax.html#t:Pat">Pat</a></td><td class="doc"><p>pattern bracket: <code>[p| ... |]</code>
</p></td></tr><tr><td class="src"><a name="v:TypeBracket" class="def">TypeBracket</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc"><p>type bracket: <code>[t| ... |]</code>
</p></td></tr><tr><td class="src"><a name="v:DeclBracket" class="def">DeclBracket</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a>]</td><td class="doc"><p>declaration bracket: <code>[d| ... |]</code>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Bracket" class="caption collapser" onclick="toggleSection('i:Bracket')">Instances</p><div id="section.i:Bracket" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Bracket">Bracket</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:Splice" class="def">Splice</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Splice" class="link">Source</a></p><div class="doc"><p>A template haskell splice expression
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IdSplice" class="def">IdSplice</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>variable splice: <code>$var</code>
</p></td></tr><tr><td class="src"><a name="v:ParenSplice" class="def">ParenSplice</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>parenthesised expression splice: <code>$(<em>exp</em>)</code>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Splice" class="caption collapser" onclick="toggleSection('i:Splice')">Instances</p><div id="section.i:Splice" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Splice">Splice</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:13">FFI
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Safety" class="def">Safety</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Safety" class="link">Source</a></p><div class="doc"><p>The safety of a foreign function call.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PlayRisky" class="def">PlayRisky</a></td><td class="doc"><p>unsafe
</p></td></tr><tr><td class="src"><a name="v:PlaySafe" class="def">PlaySafe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>safe (<code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#v:False">False</a></code>) or threadsafe (<code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#v:True">True</a></code>)
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Safety" class="caption collapser" onclick="toggleSection('i:Safety')">Instances</p><div id="section.i:Safety" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Safety">Safety</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:CallConv" class="def">CallConv</a>  <a href="src/Language-Haskell-Exts-Syntax.html#CallConv" class="link">Source</a></p><div class="doc"><p>The calling convention of a foreign function call.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:StdCall" class="def">StdCall</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CCall" class="def">CCall</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CallConv" class="caption collapser" onclick="toggleSection('i:CallConv')">Instances</p><div id="section.i:CallConv" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:CallConv">CallConv</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:14">Pragmas
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ModulePragma" class="def">ModulePragma</a>  <a href="src/Language-Haskell-Exts-Syntax.html#ModulePragma" class="link">Source</a></p><div class="doc"><p>A top level options pragma, preceding the module header.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LanguagePragma" class="def">LanguagePragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> [<a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a>]</td><td class="doc"><p>LANGUAGE pragma
</p></td></tr><tr><td class="src"><a name="v:OptionsPragma" class="def">OptionsPragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</a>) <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc"><p>OPTIONS pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
</p></td></tr><tr><td class="src"><a name="v:AnnModulePragma" class="def">AnnModulePragma</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc"><p>ANN pragma with module scope
</p></td></tr></table></div><div class="subs instances"><p id="control.i:ModulePragma" class="caption collapser" onclick="toggleSection('i:ModulePragma')">Instances</p><div id="section.i:ModulePragma" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:ModulePragma">ModulePragma</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:Tool" class="def">Tool</a>  <a href="src/Language-Haskell-Exts-Annotated-Syntax.html#Tool" class="link">Source</a></p><div class="doc"><p>Recognised tools for OPTIONS pragmas.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GHC" class="def">GHC</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HUGS" class="def">HUGS</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NHC98" class="def">NHC98</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:YHC" class="def">YHC</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HADDOCK" class="def">HADDOCK</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:UnknownTool" class="def">UnknownTool</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Tool" class="caption collapser" onclick="toggleSection('i:Tool')">Instances</p><div id="section.i:Tool" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Tool">Tool</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:Rule" class="def">Rule</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Rule" class="link">Source</a></p><div class="doc"><p>The body of a RULES pragma.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Rule" class="def">Rule</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</a>]) <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Rule" class="caption collapser" onclick="toggleSection('i:Rule')">Instances</p><div id="section.i:Rule" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Rule">Rule</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:RuleVar" class="def">RuleVar</a>  <a href="src/Language-Haskell-Exts-Syntax.html#RuleVar" class="link">Source</a></p><div class="doc"><p>Variables used in a RULES pragma, optionally annotated with types
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RuleVar" class="def">RuleVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TypedRuleVar" class="def">TypedRuleVar</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:RuleVar" class="caption collapser" onclick="toggleSection('i:RuleVar')">Instances</p><div id="section.i:RuleVar" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:RuleVar">RuleVar</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:Activation" class="def">Activation</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Activation" class="link">Source</a></p><div class="doc"><p>Activation clause of a RULES pragma.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AlwaysActive" class="def">AlwaysActive</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ActiveFrom" class="def">ActiveFrom</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ActiveUntil" class="def">ActiveUntil</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Activation" class="caption collapser" onclick="toggleSection('i:Activation')">Instances</p><div id="section.i:Activation" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Activation">Activation</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:Annotation" class="def">Annotation</a>  <a href="src/Language-Haskell-Exts-Syntax.html#Annotation" class="link">Source</a></p><div class="doc"><p>An annotation through an ANN pragma.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Ann" class="def">Ann</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>An annotation for a declared name.
</p></td></tr><tr><td class="src"><a name="v:TypeAnn" class="def">TypeAnn</a> <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>An annotation for a declared type.
</p></td></tr><tr><td class="src"><a name="v:ModuleAnn" class="def">ModuleAnn</a> <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a></td><td class="doc"><p>An annotation for the defining module.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Annotation" class="caption collapser" onclick="toggleSection('i:Annotation')">Instances</p><div id="section.i:Annotation" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Fixity.html#t:AppFixity">AppFixity</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:Annotation">Annotation</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:15">Builtin names
</h1><h2 id="g:16">Modules
</h2><div class="top"><p class="src"><a name="v:prelude_mod" class="def">prelude_mod</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a><a href="src/Language-Haskell-Exts-Syntax.html#prelude_mod" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:main_mod" class="def">main_mod</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:ModuleName">ModuleName</a><a href="src/Language-Haskell-Exts-Syntax.html#main_mod" class="link">Source</a></p></div><h2 id="g:17">Main function of a program
</h2><div class="top"><p class="src"><a name="v:main_name" class="def">main_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#main_name" class="link">Source</a></p></div><h2 id="g:18">Constructors
</h2><div class="top"><p class="src"><a name="v:unit_con_name" class="def">unit_con_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#unit_con_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:tuple_con_name" class="def">tuple_con_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#tuple_con_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:list_cons_name" class="def">list_cons_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#list_cons_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unboxed_singleton_con_name" class="def">unboxed_singleton_con_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#unboxed_singleton_con_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unit_con" class="def">unit_con</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a><a href="src/Language-Haskell-Exts-Syntax.html#unit_con" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:tuple_con" class="def">tuple_con</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a><a href="src/Language-Haskell-Exts-Syntax.html#tuple_con" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unboxed_singleton_con" class="def">unboxed_singleton_con</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a><a href="src/Language-Haskell-Exts-Syntax.html#unboxed_singleton_con" class="link">Source</a></p></div><h2 id="g:19">Special identifiers
</h2><div class="top"><p class="src"><a name="v:as_name" class="def">as_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#as_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:qualified_name" class="def">qualified_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#qualified_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:hiding_name" class="def">hiding_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#hiding_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:minus_name" class="def">minus_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#minus_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:bang_name" class="def">bang_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#bang_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:dot_name" class="def">dot_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#dot_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:star_name" class="def">star_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#star_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:export_name" class="def">export_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#export_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:safe_name" class="def">safe_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#safe_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unsafe_name" class="def">unsafe_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#unsafe_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:threadsafe_name" class="def">threadsafe_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#threadsafe_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:stdcall_name" class="def">stdcall_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#stdcall_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:ccall_name" class="def">ccall_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Name">Name</a><a href="src/Language-Haskell-Exts-Syntax.html#ccall_name" class="link">Source</a></p></div><h2 id="g:20">Type constructors
</h2><div class="top"><p class="src"><a name="v:unit_tycon_name" class="def">unit_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#unit_tycon_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:fun_tycon_name" class="def">fun_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#fun_tycon_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:list_tycon_name" class="def">list_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#list_tycon_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:tuple_tycon_name" class="def">tuple_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#tuple_tycon_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unboxed_singleton_tycon_name" class="def">unboxed_singleton_tycon_name</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:QName">QName</a><a href="src/Language-Haskell-Exts-Syntax.html#unboxed_singleton_tycon_name" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unit_tycon" class="def">unit_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a><a href="src/Language-Haskell-Exts-Syntax.html#unit_tycon" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:fun_tycon" class="def">fun_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a><a href="src/Language-Haskell-Exts-Syntax.html#fun_tycon" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:list_tycon" class="def">list_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a><a href="src/Language-Haskell-Exts-Syntax.html#list_tycon" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:tuple_tycon" class="def">tuple_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Boxed">Boxed</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a><a href="src/Language-Haskell-Exts-Syntax.html#tuple_tycon" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unboxed_singleton_tycon" class="def">unboxed_singleton_tycon</a> :: <a href="Language-Haskell-Exts-Syntax.html#t:Type">Type</a><a href="src/Language-Haskell-Exts-Syntax.html#unboxed_singleton_tycon" class="link">Source</a></p></div><h1 id="g:21">Source coordinates
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SrcLoc" class="def">SrcLoc</a>  <a href="src/Language-Haskell-Exts-SrcLoc.html#SrcLoc" class="link">Source</a></p><div class="doc"><p>A single position in the source.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SrcLoc" class="def">SrcLoc</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:srcFilename" class="def">srcFilename</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:srcLine" class="def">srcLine</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:srcColumn" class="def">srcColumn</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</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:SrcLoc" class="caption collapser" onclick="toggleSection('i:SrcLoc')">Instances</p><div id="section.i:SrcLoc" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-SrcLoc.html#t:SrcInfo">SrcInfo</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-Exts-Pretty.html#t:Pretty">Pretty</a> <a href="Language-Haskell-Exts-Syntax.html#t:SrcLoc">SrcLoc</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>