6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      C  ?Allow regular pattern matching over lists, as discussed in the  paper Regular Expression Patterns" by Niklas Broberg, Andreas Farre # and Josef Svenningsson, from ICFP '04. BAllow concrete XML syntax to be used in expressions and patterns, 5 as per the Haskell Server Pages extension language:   &http://www.haskell.org/haskellwiki/HSP. The ideas behind it are  discussed in the paper ,Haskell Server Pages through Dynamic Loading * by Niklas Broberg, from Haskell Workshop '05. BAllow imports to be qualified by the package name that the module ' is intended to be imported from, e.g. ! import "network" Network.Socket  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLB  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLBLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!   B  <LKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLportable experimental)Niklas Broberg, d00nibro@dtek.chalmers.sedMA guarded alternative | stmt, ... , stmt -> exp. NOPgdpat Q-> exp RAn alt in a case expression. STAn fbind& in a labeled construction or update. UVWXThis type represents a qual in a list comprehension, 6 which could potentially be a transform of the kind ! enabled by TransformListComp. Ythen group by exp using exp Zthen group using exp [then group by exp \then exp by exp ]then exp ^ an ordinary statement qualifier _This type represents both stmt in a do -expression,  and qual% in a list comprehension, as well as stmt  in a pattern guard. `alocal bindings ban exp by itself: in a do -expression, & an action whose result is discarded; - in a list comprehension, a guard expression c a generator pat <- exp dAn fpat in a labeled record pattern. efgh&An entity in a regular pattern (HaRP) ijklmnopq"A regular pattern operator (HaRP) rstuvwx'An XML attribute in an XML tag pattern yz*A pattern, to be matched against a value. { f !x = ... | $name| string | }0Explicit type argument e.g. f {| Int |} x = ... ~XML regular list pattern XML embedded pattern XML PCDATA pattern XML singleton tag pattern XML tag pattern regular pattern (HaRP)  Hsx #view patterns of the form (e -> p)  HaRP pattern type signature irrefutable pattern (~) wildcard pattern (_) @ -pattern labelled pattern parenthesized pattern  list pattern tuple pattern data constructor and argument  patterns $pattern with infix data constructor  n+k pattern negated pattern literal constant  variable Haskell expressions. Notes: B Because it is difficult for parsers to distinguish patterns from I expressions, they typically parse them in the same way and then check C that they have the appropriate form. Hence the expression type E includes some forms that are found only in patterns. After these 2 checks, these constructors should not be used. E The parser does not take precedence and associativity into account,  so it will leave s associated to the left.  The #Language.Haskell.Exts.Pretty.Pretty instance for  does not  add parentheses in printing. exp >>- exp exp -<< exp exp >- exp exp -< exp proc pat -> exp  $name| string | ''T 'x expression type signature  Template Haskell parallel list comprehension list comprehension bounded arithmetic sequence,  with first two elements given unbounded arithmetic sequence,  with first two elements given bounded arithmetic sequence,  incrementing by 1 unbounded arithmetic sequence,  incrementing by 1 record update expression record construction expression right section (qop exp)  left section (exp qop) parenthesized expression list expression tuple expression mdo -expression do -expression:  the last statement in the list  should be an expression. case exp of alts if exp then exp else exp local declarations with let lambda expression negation expression - exp ordinary application infix application literal constant data constructor implicit parameter variable  variable literal E Values of this type hold the abstract value of the literal, not the 3 precise string representation used. For example, 10, 0o12 and 0xa  have the same representation. GHC unboxed string literal GHC unboxed character literal GHC unboxed double literal GHC unboxed float literal GHC unboxed word literal GHC unboxed integer literal floating point literal integer literal string literal character literal Class assertions. * In Haskell 98, the argument would be a tyvar, but this definition 5 allows multiple parameters, and allows them to be types. P Also extended with support for implicit parameters and equality constraints. +A functional dependency, given on the form  l1 l2 ... ln -> r2 r3 .. rn !A type qualified with a context. - An unqualified type has an empty context.  "type with explicit kind signature  infix type constructor  type surrounded by parentheses H | TyPred Asst -- ^ assertion of an implicit parameter  named type or type constructor  type variable "application of a type constructor list syntax, e.g. [a], as opposed to [] a tuple type, possibly boxed function type A guarded right hand side | exp = exp. . The first expression will be Boolean-valued. 6The right hand side of a function or pattern binding. guarded right hand side (gdrhs) unguarded right hand side (exp) BThe type of a constructor argument or field, optionally including  a strictness annotation. unboxed component non-strict component strict component, marked with "!" ,Declarations inside an instance declaration  !"(Declarations inside a class declaration #$%&'#Declaration of a data constructor. (record constructor )infix data constructor *ordinary data constructor +,-./Clauses of a function binding. 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUAssociativity of an operator. V*right-associative operator (declared with infixr) W)left-associative operator (declared with infixl). X(non-associative operator (declared with infix) YImport specification. ZT(C_1,...,C_n): / a class imported with some of its methods, or 4 a datatype imported with some of its constructors. [T(..): . a class imported with all of its methods, or 3 a datatype imported with all of its constructors. \T: 0 the name of a class, datatype or type synonym. ] variable ^Import declaration. _`position of the import keyword. aname of the module imported. b imported  qualified? cimported with {- SOURCE -} d$imported with explicit package name eoptional alias name in an  as clause. f(optional list of import specifications.  The  is   if the names are excluded  by hiding. gExport specification. hmodule M:  re-export a module. iT(C_1,...,C_n): / a class exported with some of its methods, or 4 a datatype exported with some of its constructors. jT(..): . a class exported with all of its methods, or 3 a datatype exported with all of its constructors. kT: * a class or datatype exported abstractly,  or a type synonym. l variable mA Haskell source module. noA name (cname/) of a component of a class or data type in an import  or export specification. pname of a data constructor qname of a method or field rOperators, appearing in infix declarations. sconstructor operator (conop) tvariable operator (varop) u$Possibly qualified infix operators (qop), appearing in expressions. vconstructor operator (qconop) wvariable operator (qvarop) x9This type is used to represent implicit parameter names. yz{AThis type is used to represent variables, and also constructors. |varsym or consym }varid or conid. ~=This type is used to represent qualified variables, and also  qualified constructors. )built-in constructor with special syntax unqualified name "name qualified with a module name "Constructors with special syntax. F These names are never qualified, and always refer to builtin type or  data constructors. $unboxed singleton tuple constructor list data constructor (:) n-ary tuple type and data  constructors (,) etc function type constructor -> list type constructor [] unit type and data constructor () The name of a Haskell module. A position in the source. dMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~dmnglkjih^_`abcdefY]\[ZUXWV9SRQPONMLKJIHGFEDCBA@?>=<;:35412"&%$#! T+,'*)(-./0687     _cba`X^]\[ZYTWVURSOQPMNz~}|{dgfe~{}|uwvrtsoqpxzyhponmlkjiqwvutsrxydMNNOQPPQRSSTWVUUVWX^]\[ZYYZ[\]^_cba``abcdgfeefghponmlkjiijklmnopqwvutsrrstuvwxyyz~}|{{|}~,            !  !"&%$##$%&'*)(()*+,,-../0012235445687789SRQPONMLKJIHGFEDCBA@?>=<;::;<=>?@ABCDEFGHIJKLMNOPQRSTUXWVVWXY]\[ZZ[\]^_`abcdef_`abcdefglkjihhijklmnnoqppqrtsstuwvvwxzyyz{}||}~portable experimental)Niklas Broberg, d00nibro@dtek.chalmers.se1!"#A function with a single match A function with a single match, a single argument, no guards  and no where declarations :A pattern bind where the pattern is a variable, and where  there are no guards and no 'where' clause. ...portable experimental)Niklas Broberg, d00nibro@dtek.chalmers.sevGThings that can be pretty-printed, including all the syntactic objects  in Language.Haskell.Syntax. $%Pretty-print something in isolation. %0Pretty-print something in a precedence context. &;The document type produced by these pretty printers uses a   environment. 'Pretty printing monad (Pretty-printing parameters. Note: the 3 must be positive and less than all other indents. #indentation of a class or instance indentation of a do -expression indentation of the body of a  case expression %indentation of the declarations in a  let expression %indentation of the declarations in a  where clause #indentation added for continuation ' lines that would otherwise be offside  blank lines between statements? Pretty-printing style to use add GHC-style LINE pragmas to output? not implemented yet  Varieties of layout we can use. everything on a single line )inline decls, with newlines between them classical layout made explicit classical layout CThe default mode: pretty-print using the offside rule and sensible  defaults. )*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV1render the document with a given style and mode. W'render the document with a given mode. Xrender the document with . *pretty-print with a given style and mode. 6pretty-print with the default style and a given mode. (pretty-print with the default style and . YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" "       portable experimentallibraries@haskell.orgAMonad for parsing %Static parameters governing a parse. > More to come later, e.g. literate mode, language extensions. 'original name of the file being parsed list of extensions enabled if True, the parser won't look for further extensions % in LANGUAGE pragmas in source files  list of fixities to be aware of The result of a parse. "The parse failed at the specified ) source location, with an error message. 'The parse succeeded, yielding a value.   Default parameters for a parse, 2 currently just a marker for an unknown filename. IDiscard some input characters (these must not include tabs or newlines). 5Discard the next character, which must be a newline. 1Discard the next character, which must be a tab. 2 2  portable experimental)Niklas Broberg, d00nibro@dtek.chalmers.se) ]       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc      !"#$%&'()*+,-./0123456789:;<=>?@ABKBA@?>=<;:9876543210/.-,+*)('&%$#"!            !"#$%&'()*+,-./0123456789:;<=>?@ABK portable experimental)Niklas Broberg, d00nibro@dtek.chalmers.sedefghij"type with explicit kind signature kinfix type constructor l#assertion of an implicit parameter mtype surrounded by parentheses nnamed type or type constructor otype variable p"application of a type constructor qlist syntax, e.g. [a], as opposed to [] a rtuple type, possibly boxed sfunction type tuvwxyz{|}~ f !a = ... f {| Int |} x = ...  $...|... ''T 'x regular patterns only regular patterns only regular patterns only regular patterns only patterns only  post-ops patterns only patterns only patterns only expression type signature parallel list comprehension bounded arithmetic sequence,  with first two elements given unbounded arithmetic sequence,  with first two elements given bounded arithmetic sequence,  incrementing by 1 unbounded arithmetic sequence,  incrementing by 1 record update expression record construction expression right section (qop exp) parenthesized expression list expression tuple expression mdo -expression do -expression:  the last statement in the list  should be an expression. case exp of alts if exp then exp else exp local declarations with let lambda expression negation expression - exp ordinary application infix application literal constant data constructor implicit parameter variable  variable udefghijklmnopqrstuvwxyz{|}~udhgfeefghi tsrqponmlkjjklmnopqrstuvwwx{zyyz{|6~}}~portable experimental)Niklas Broberg, d00nibro@dtek.chalmers.se :Class to reuse the parse function at many different types         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ CParse of a string, which should contain a complete Haskell module. FParse of a string, which should contain a complete Haskell 98 module. 3Parse of a string containing a Haskell expression. FParse of a string, which should contain a complete Haskell 98 module. 0Parse of a string containing a Haskell pattern. FParse of a string, which should contain a complete Haskell 98 module. >Parse of a string containing a Haskell top-level declaration. FParse of a string, which should contain a complete Haskell 98 module. -Parse of a string containing a Haskell type. FParse of a string, which should contain a complete Haskell 98 module. FParse of a string starting with a series of top-level option pragmas.                 "  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYYZZ[\\]^_]`abcde`fghijklmnopqrstuvwxyz{|}~      !"#$%&'(&))**++,,-./0123456789:;<=>?@AB!CDEFGHIJKLMNOPQRSTUVVWXYZ[\]^_`abcddefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyyz{{|}~                                                                                                                     ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T     U   V         W X  Y ^ _ ] Z      [ \    ]          ^ _ ` a b c d e f                          g h i j k l m n o p q r s t u v w x y z { | } ~                                                     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqhaskell-src-exts-0.5.4Language.Haskell.Exts.PrettyLanguage.Haskell.Exts.ExtensionLanguage.Haskell.Exts.SyntaxLanguage.Haskell.Exts.BuildLanguage.Haskell.Exts.FixityLanguage.Haskell.Exts.ParserLanguage.Haskell.Exts Language.Haskell.Exts.ParseMonadLanguage.Haskell.Exts.Lexer Language.Haskell.Exts.ParseUtilspretty-1.0.1.1Text.PrettyPrint.HughesPJstyleribbonsPerLine lineLengthmodeStylePageMode ZigZagModeLeftMode OneLineModeModeEnabled isEnabled ExtSchemeAllAny ExtensionRegularPatterns XmlSyntax ViewPatternsTransformListComp QuasiQuotesPostfixOperatorsNewQualifiedOperatorsImpredicativeTypesPackageImportsConstrainedClassMethodsDeriveDataTypeable UnboxedTuplesExtendedDefaultRulesRelaxedPolyRec MonoPatBindsGADTsOverloadedStringsDisambiguateRecordFields RecordPunsRecordWildCards TypeOperatorsLiberalTypeSynonymsUnliftedFFITypesPatternSignatures UnicodeSyntaxStandaloneDeriving TypeFamilies MagicHash HereDocumentsRestrictedTypeSynonymsExtensibleRecordsGeneralizedNewtypeDeriving PatternGuardsNamedFieldPunsNoImplicitPreludeGenericsArrowsForeignFunctionInterfaceTemplateHaskellTypeSynonymInstances BangPatternsKindSignaturesCPPEmptyDataDeclsFlexibleInstancesFlexibleContextsImplicitParamsScopedTypeVariablesExistentialQuantificationPolymorphicComponents RankNTypes Rank2TypesFunctionalDependenciesNoMonomorphismRestrictionMultiParamTypeClassesParallelListComp RecursiveDoIncoherentInstancesUndecidableInstancesOverlappingInstances GuardedAlt GuardedAlts UnGuardedAltAlt FieldUpdate FieldWildcardFieldPunQualStmt GroupByUsing GroupUsingGroupByThenBy ThenTransStmtRecStmtLetStmt Qualifier GeneratorPatFieldPFieldWildcard PFieldPun PFieldPatRPatRPPatRPParenRPAsRPCAsRPGuardRPSeqRPEitherRPOpRPatOpRPOptGRPOptRPPlusGRPPlusRPStarGRPStarPXAttrPatPBangPat PQuasiQuote PExplTypeArgPXRPatsPXPatTagPXPcdataPXETagPXTagPRPatPViewPat PatTypeSigPIrrPat PWildCardPAsPatPRecPParenPListPTuplePApp PInfixAppPNPlusKPNegPLitPVar WarningTextWarnTextDeprTextRuleVar TypedRuleVarRule Activation ActiveUntil ActiveFrom AlwaysActiveTool UnknownToolHADDOCKYHCNHC98HUGSGHC OptionPragma OptionsPragma CFilesPragma IncludePragmaLanguagePragmaCallConvCCallStdCallSafetyPlaySafe PlayRiskySplice ParenSpliceIdSpliceBracket DeclBracket TypeBracket PatBracket ExpBracketXAttrXNameXDomNameExpRightArrHighAppLeftArrHighApp RightArrApp LeftArrAppProc GenPragma SCCPragma CorePragmaXExpTagXPcdataXETagXTag QuasiQuote SpliceExp BracketExpTypQuoteVarQuote ExpTypeSigParCompListCompEnumFromThenTo EnumFromThen EnumFromToEnumFrom RecUpdate RecConstr RightSection LeftSectionParenListTupleMDoDoCaseIfLetLambdaNegAppAppInfixAppLitConIPVarVarLiteral PrimStringPrimChar PrimDouble PrimFloatPrimWordPrimIntFracIntStringCharAsstEqualPIParamInfixAClassAContextFunDepKindKindFnKindBangKindStar TyVarBind UnkindedVar KindedVarBoxedUnboxedTypeTyKindTyInfixTyParenTyConTyVarTyAppTyListTyTupleTyFunTyForall GuardedRhsRhs GuardedRhss UnGuardedRhsBangType UnpackedTy UnBangedTyBangedTyInstDecl InsInlineInsGDataInsDataInsTypeInsDecl ClassDeclClsTyDefClsTyFam ClsDataFamClsDeclConDeclRecDecl InfixConDeclGadtDecl QualConDeclMatchIPBindBindsIPBindsBDecls DataOrNewNewTypeDataTypeDeclInstSig SpecInlineSigSpecSig InlineSigWarnPragmaDeclDeprPragmaDeclRulePragmaDeclForExpForImpPatBindFunBindTypeSig SpliceDecl DefaultDecl DerivDecl InfixDecl GDataInsDecl DataInsDecl TypeInsDecl DataFamDecl TypeFamDecl GDataDeclDataDeclTypeDeclDerivingAssoc AssocRight AssocLeft AssocNone ImportSpec IThingWith IThingAllIAbsIVar ImportDecl importLoc importModuleimportQualified importSrc importPkgimportAs importSpecs ExportSpecEModuleContents EThingWith EThingAllEAbsEVarModuleCNameConNameVarNameOpConOpVarOpQOpQConOpQVarOpIPNameIPLinIPDupNameSymbolIdentQNameSpecialUnQualQual SpecialConUnboxedSingleConConsTupleConFunConListConUnitCon ModuleNameSrcLoc srcFilenamesrcLine srcColumn prelude_modmain_mod main_name unit_con_nametuple_con_namelist_cons_nameunboxed_singleton_con_nameunit_con tuple_conunboxed_singleton_conas_namequalified_name hiding_name minus_name bang_namedot_name star_name export_name safe_name unsafe_namethreadsafe_name stdcall_name ccall_nameunit_tycon_namefun_tycon_namelist_tycon_nameunboxed_singleton_tycon_nametuple_tycon_name unit_tycon fun_tycon list_tyconunboxed_singleton_tycon tuple_tyconnamesymvaropqvarpvarappinfixAppappFunpApptuplepTuplevarTuple pvarTuplefunctionstrEcharEintEstrPcharPintPdoElamEletEcaseEaltaltGWlistEeListpeListparenpParenqualStmtgenStmtletStmtbindsnoBindswildcardgenNamessfun simpleFunpatBind patBindWherenameBind metaFunction metaConPatPrettyPPHsMode classIndentdoIndent caseIndent letIndent whereIndent onsideIndentspacinglayout linePragmascommentsIndentPPLayout PPNoLayoutPPInLine PPSemiColon PPOffsideRule defaultModeprettyPrintStyleModeprettyPrintWithMode prettyPrint AppFixity applyFixitiesFixity askFixitypreludeFixities baseFixitiesfixity appFixDecls ParseMode parseFilename extensionsignoreLanguagePragmasfixities ParseResult ParseFailedParseOk unParseOkdefaultParseMode Parseableparse parseWithMode parseModuleparseModuleWithModeparseExpparseExpWithModeparsePatparsePatWithMode parseDeclparseDeclWithMode parseTypeparseTypeWithMode getTopPragmas parseFileparseFileWithExtsparseFileWithModeparseFileContentsparseFileContentsWithModereadExtensions MExtSchemeghc-primGHC.BoolBoolTrueunGAltgAltsgAltpretty prettyPrecDocDocMthenDocM then_DocMretDocMunDocMgetPPEnvemptynesttextptextcharintintegerfloatdoublerationalparensbracketsbracesquotes doubleQuotesparensIfsemicommacolonspaceequalslparenrparenlbrackrbracklbracerbrace<><+>$$$+$hcathsepvcatsepcatfsepfcathang punctuaterenderStyleModerenderWithModerenderfullRenderWithMode fullRenderppModuleHeader ppWarnTxtppWhereppSig ppWarnDepr ppRuleVarsppField ppDerivingppBTypeppAType prec_btype prec_atypeppForall ppOptKind ppFunDeps ppQNameInfixppQName ppNameInfixppName isSymbolNamegetName specialName ppContextmaybePP parenList hashParenList braceList bracketList flatBlock prettyBlock blanklinetopLevelppBody$$$mySepmyVcat myFsepSimplemyFsep layoutChoicemarkLineinfixr_infixl_infix_ appFixExpLexrunLPrunP ParseStateLexState ExtContext CodeTagCtxt CloseTagCtxt ChildCtxtTagCtxtHarpCtxtCodeCtxt LexContextLayoutNoLayout ParseStatusFailedOkindentOfParseStaterunParserWithMode runParseratSrcLoc getSrcLoc getModuleNamepushCurrentContext currentIndent pushContext popContextpushExtContext popExtContext getExtensions pushLexStategetInputdiscard lexNewlinelexTabnextTab tAB_LENGTHlexWhile alternativecheckBOLsetBOL startToken getOffside pushContextL popContextL pullLexState getExtContextpushExtContextLpopExtContextLgetExtensionsLTokenEOFKW_CCall KW_StdCall KW_Threadsafe KW_UnsafeKW_Safe KW_Export KW_Foreign KW_QualifiedKW_WhereKW_UsingKW_TypeKW_ThenKW_RecKW_ProcKW_Of KW_NewType KW_ModuleKW_Let KW_Instance KW_InfixR KW_InfixLKW_InfixKW_In KW_ImportKW_If KW_HidingKW_Group KW_Forall KW_FamilyKW_ElseKW_MDoKW_Do KW_Deriving KW_DefaultKW_DataKW_ClassKW_CaseKW_ByKW_AsINCLUDELANGUAGECFILESOPTIONSUNPACKCORE GENERATEDSCCWARNING DEPRECATEDSOURCESPECIALISE_INLINE SPECIALISEINLINERULES PragmaEnd XRPatClose XRPatOpenXPCDATAXEmptyTagClose XCloseTagOpen XStdTagClose XStdTagOpen XCodeTagClose XCodeTagOpenRPCAt RPGuardClose RPGuardOpen THQuasiQuote THTyQuote THVarQuote THParenEscape THIdEscape THCloseQuote THTypQuote THDecQuote THPatQuote THExpQuoteRightDblArrowTailLeftDblArrowTailRightArrowTail LeftArrowTailStar ExclamationMinus DoubleArrowTildeAt RightArrow LeftArrowBar BackslashEquals DoubleColonColonDotDotDot BackQuote UnderscoreComma RightSquare LeftSquare VRightCurly RightCurly LeftCurly SemiColon RightCurlyBar LeftCurlyBarRightHashParen LeftHashParen RightParen LeftParen StringHash CharacterHash DoubleTokHash FloatTokHash WordTokHash IntTokHash StringTok CharacterFloatTokIntTokQConSymQVarSymConSymVarSymDVarIdQConIdConId ILinVarId IDupVarIdQVarIdVarId reserved_opsspecial_varops reserved_idsspecial_varidspragmasisIdent isHSymbol matchCharlexertopLexer lexWhiteSpacelexNestedCommentlexBOLlexToken lexChildCtxt lexPCDATAlexCodeTagCtxtlexCloseTagCtxt lexTagCtxt lexHarpToken lexStdTokenlexPragmaStart lexRawPragmalexDecimalOrFloatlexHashlexConIdOrQual lexCharacter lexString lexEscapelexOctallexHexadecimal lexDecimal parseIntegerPAsstPTypeTyPredPContext ParseXAttr PFieldUpdatePExpBangPat ExplTypeArgXRPatsCAsRPEitherRPGuardRPSeqRPViewPatPostOpIrrPatWildCardAsPat splitTyConApp checkEnabledcheckPatternGuards checkPContextcheckAssertionisSymbol checkSContext checkContext checkAsstcheckAsstParamcheckDataHeadercheckClassHeader checkSimple isTyVarBind toTyVarBindcheckInstHeader checkInsts checkDeriving checkPatterncheckPat splitBang checkPatField checkPAttrpatFail checkRPattern checkRPatOp fixRPOpPrec mkChildrenPat checkExpr checkAttr check1Expr check2Exprs check3ExprscheckManyExprs checkRuleExprreadTool checkField getGConName checkValDefisFunLhs checkSigVarcheckClassBody checkInstBodycheckMethodDef checkUnQual checkEqNames checkPrecmkRecConstrOrUpdate checkRevDeclscheckRevClsDeclscheckRevInstDeclscheckDataOrNewcheckSimpleType checkType check1Type check2Types checkTypespageFunmkPage mkPageModulemkDVar mkDVarExpr mkTyForall p_unit_con p_tuple_conp_unboxed_singleton_con HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSynhappyIn9 happyOut9 happyIn10 happyOut10 happyIn11 happyOut11 happyIn12 happyOut12 happyIn13 happyOut13 happyIn14 happyOut14 happyIn15 happyOut15 happyIn16 happyOut16 happyIn17 happyOut17 happyIn18 happyOut18 happyIn19 happyOut19 happyIn20 happyOut20 happyIn21 happyOut21 happyIn22 happyOut22 happyIn23 happyOut23 happyIn24 happyOut24 happyIn25 happyOut25 happyIn26 happyOut26 happyIn27 happyOut27 happyIn28 happyOut28 happyIn29 happyOut29 happyIn30 happyOut30 happyIn31 happyOut31 happyIn32 happyOut32 happyIn33 happyOut33 happyIn34 happyOut34 happyIn35 happyOut35 happyIn36 happyOut36 happyIn37 happyOut37 happyIn38 happyOut38 happyIn39 happyOut39 happyIn40 happyOut40 happyIn41 happyOut41 happyIn42 happyOut42 happyIn43 happyOut43 happyIn44 happyOut44 happyIn45 happyOut45 happyIn46 happyOut46 happyIn47 happyOut47 happyIn48 happyOut48 happyIn49 happyOut49 happyIn50 happyOut50 happyIn51 happyOut51 happyIn52 happyOut52 happyIn53 happyOut53 happyIn54 happyOut54 happyIn55 happyOut55 happyIn56 happyOut56 happyIn57 happyOut57 happyIn58 happyOut58 happyIn59 happyOut59 happyIn60 happyOut60 happyIn61 happyOut61 happyIn62 happyOut62 happyIn63 happyOut63 happyIn64 happyOut64 happyIn65 happyOut65 happyIn66 happyOut66 happyIn67 happyOut67 happyIn68 happyOut68 happyIn69 happyOut69 happyIn70 happyOut70 happyIn71 happyOut71 happyIn72 happyOut72 happyIn73 happyOut73 happyIn74 happyOut74 happyIn75 happyOut75 happyIn76 happyOut76 happyIn77 happyOut77 happyIn78 happyOut78 happyIn79 happyOut79 happyIn80 happyOut80 happyIn81 happyOut81 happyIn82 happyOut82 happyIn83 happyOut83 happyIn84 happyOut84 happyIn85 happyOut85 happyIn86 happyOut86 happyIn87 happyOut87 happyIn88 happyOut88 happyIn89 happyOut89 happyIn90 happyOut90 happyIn91 happyOut91 happyIn92 happyOut92 happyIn93 happyOut93 happyIn94 happyOut94 happyIn95 happyOut95 happyIn96 happyOut96 happyIn97 happyOut97 happyIn98 happyOut98 happyIn99 happyOut99 happyIn100 happyOut100 happyIn101 happyOut101 happyIn102 happyOut102 happyIn103 happyOut103 happyIn104 happyOut104 happyIn105 happyOut105 happyIn106 happyOut106 happyIn107 happyOut107 happyIn108 happyOut108 happyIn109 happyOut109 happyIn110 happyOut110 happyIn111 happyOut111 happyIn112 happyOut112 happyIn113 happyOut113 happyIn114 happyOut114 happyIn115 happyOut115 happyIn116 happyOut116 happyIn117 happyOut117 happyIn118 happyOut118 happyIn119 happyOut119 happyIn120 happyOut120 happyIn121 happyOut121 happyIn122 happyOut122 happyIn123 happyOut123 happyIn124 happyOut124 happyIn125 happyOut125 happyIn126 happyOut126 happyIn127 happyOut127 happyIn128 happyOut128 happyIn129 happyOut129 happyIn130 happyOut130 happyIn131 happyOut131 happyIn132 happyOut132 happyIn133 happyOut133 happyIn134 happyOut134 happyIn135 happyOut135 happyIn136 happyOut136 happyIn137 happyOut137 happyIn138 happyOut138 happyIn139 happyOut139 happyIn140 happyOut140 happyIn141 happyOut141 happyIn142 happyOut142 happyIn143 happyOut143 happyIn144 happyOut144 happyIn145 happyOut145 happyIn146 happyOut146 happyIn147 happyOut147 happyIn148 happyOut148 happyIn149 happyOut149 happyIn150 happyOut150 happyIn151 happyOut151 happyIn152 happyOut152 happyIn153 happyOut153 happyIn154 happyOut154 happyIn155 happyOut155 happyIn156 happyOut156 happyIn157 happyOut157 happyIn158 happyOut158 happyIn159 happyOut159 happyIn160 happyOut160 happyIn161 happyOut161 happyIn162 happyOut162 happyIn163 happyOut163 happyIn164 happyOut164 happyIn165 happyOut165 happyIn166 happyOut166 happyIn167 happyOut167 happyIn168 happyOut168 happyIn169 happyOut169 happyIn170 happyOut170 happyIn171 happyOut171 happyIn172 happyOut172 happyIn173 happyOut173 happyIn174 happyOut174 happyIn175 happyOut175 happyIn176 happyOut176 happyIn177 happyOut177 happyIn178 happyOut178 happyIn179 happyOut179 happyIn180 happyOut180 happyIn181 happyOut181 happyIn182 happyOut182 happyIn183 happyOut183 happyIn184 happyOut184 happyIn185 happyOut185 happyIn186 happyOut186 happyIn187 happyOut187 happyIn188 happyOut188 happyIn189 happyOut189 happyIn190 happyOut190 happyIn191 happyOut191 happyIn192 happyOut192 happyIn193 happyOut193 happyIn194 happyOut194 happyIn195 happyOut195 happyIn196 happyOut196 happyIn197 happyOut197 happyIn198 happyOut198 happyIn199 happyOut199 happyIn200 happyOut200 happyIn201 happyOut201 happyIn202 happyOut202 happyIn203 happyOut203 happyIn204 happyOut204 happyIn205 happyOut205 happyIn206 happyOut206 happyIn207 happyOut207 happyIn208 happyOut208 happyIn209 happyOut209 happyIn210 happyOut210 happyIn211 happyOut211 happyIn212 happyOut212 happyIn213 happyOut213 happyIn214 happyOut214 happyIn215 happyOut215 happyIn216 happyOut216 happyIn217 happyOut217 happyIn218 happyOut218 happyIn219 happyOut219 happyIn220 happyOut220 happyIn221 happyOut221 happyIn222 happyOut222 happyIn223 happyOut223 happyIn224 happyOut224 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTable happyThen happyReturn happyReturn1 happyError' happyError happyTcHack happyDoSeq happyDontSeq ppContentsdelit