3      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk l m n o p q r s t u v w x y z { | } ~        !"#$%&''(()*++, ,!-".#/$0%1&1'2(3)3*4+4,5-5.6/7071728@NoneNone    None35VThis class is used to overload literal construction based on the type of the literal.The class used to overload lifting operations. To reduce code duplication, we overload the wrapped constructors (and everything else, but that's irrelevant) to work in patterns, expressions, and types.TBuild an application node, with a name for a head and a provided list of arguments.Reference a named variable. Lift a TH 3Tupling Listing&)A simple clause, without where or guards.'"A default clause with N arguments.(A simple Val clause+We provide 3 standard instance constructors instance_default requires C for each free type variable instance_none requires no context instance_context requires a given context.zBuild an instance of a class for a data type, using the heuristic that the type is itself required on all type arguments./PBuild an instance of a class for a data type, using the class at the given types05Build a type signature declaration with a string name1"Build a fundecl with a string name2.Build an application node without a given head4.Common pattern: list of a familiy of variables5#Variable based on a letter + number6@Make a list of variables, one for each argument to a constructor7+Make a simple pattern to bind a constructor8 Reference the constructor itselfQBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)RBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)SBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)TBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)UBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)V K-way liftMI !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVI#$%&'()*+,-./01!"a` _^]2\[ZYXW3456789:;<=>@A?BCDEFGHIJKLMONPQRSUTVB !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aNoneG 4bcd56789bcdbdc 4bcd56789NoneGe*Expand type synonyms in a data declaratione:;<=eee:;<=Safefgfgfgfg9Safe;N >?@ABCDEFGDEF>?@ABCDEFSafehihihihiSafe35Njjj None;klmnopqrstuvwxyz{|}~HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~klmnopqrstuvwxyz{|}~;opqrstuvwxyz{|}~nmlk;klmnopqrstuvwxyz{|}~o None357N+* None+HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~klmnopqrstuvwxyz{|}~ None+ None NoneG NoneINNone:None;None<None               NoneKThe type of ways to derive classes. Should not really be in this module!The derivation function properThe name of the derivation !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVbcdeNone NoneVWVWNoneNoneNoneNoneNoneNoneXYZXYZNone[\[\NoneNone        None        None    None]^]^ None_`a_`a!Nonebb"Nonecc#(c) Bertram Felgenhauer 2009BSD3 experimentalportableNone for JSONdefghijklmnopqrdefghijklmnopqr$Noness%Nonett&Noneuu'None(None)NoneGvwxyz{|vwxyz{|*None}}+None,None    -None!~!!!~.None""""/None####0NoneG$$$$1None%&%&%&%&2None''''=None!Information on argument positions&Monad that collects required instances'What argument of the current data type?$What argument position of that type?'What kind of traversal are we deriving?#On what position are we traversing? covariant?name of the traversal functionIdentity traversal Traversal of a Apply the sub-traversal function-Apply two non-identity traversals in sequenceTraverse a function type)Construct a tuple from applied traversals-Construct a data type from applied traversals,Construct a clause of the traversal function?An expression representing a traversal of a subpart of the data:Derivation for a Traversable like class with just 1 method8Instance for a Traversable like class with just 1 method%Instance for a Traversable like class Derive a  like functionDerive a clause of a  like function for a constructorDerive a traversal for a typeAFind all arguments to a type application, then derive a traversal6Lift a traversal to the argument of a type constructorpPosition of an argument in the data type In the type "data X a b c" positions are: a -> 3, b -> 2, c -> 1  3None()()()()4None*+*+*+*+5None,-,-,-,->None6None.6      !"#$%&'()*+,-...7None/"Derive an instance of some class. derive6 only derives instances for the type of the argument.1"Derive an instance of some class.  deriveFromDec6 only derives instances for the type of the argument./019      !"#$%&'()*+,-./01/01/01?None  @None2228None22ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                H t L M O                                   !"##$%&'##%()*+,-./0123456789:;<=>?@ABCD E!F"G#H$I%J&K'L'M(N(O)P*Q+R+S,T,U-V.W/X0Y1Z1[2\3]3^4_4`5a5b6c77d7e@fghijklmnopqr9s9s999t9u9v9w9xyz{|}~|}|}|}|}|}|}|}|}|}|}||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|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|YZ|Y[|Y\|Y]|Y^|Y_|Y`|Ya|Yb|Yc|Yd|Ye|Yf|Yg|Yh|Yi|Yj|Yj|kl|km|kn|ko|kp|kq|kr|kr|ks|kt|uv|uw|ux|uy|uz|u{|u||u}|u~|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|u|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | ||||||||||||||||||| ||!|"|#|$|%|&|'|(|)|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|>|?|?|@|@|A|B|C|C|D|D|E|F|G|H|I||J|K|L|M||N|O|P|Q|R|S|T|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|x|y|z|{|||}|~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||i||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | ||||||||||||||||||| | |!|"|#|#|$|$|%&|%'|%(|%)|%*|%+|%,|%-|%.|%/|%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|%{|%||%}|%~|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|%|||||||||||||||||||||||                                         ::::::::::::::: : : : : :::;;;;;;;;<<<<<<<<< <!<<"<#<$<%<&<'gh(gh)gh*ghgh+gh,gh-gh.gh/gh0gh1gh2gh3gh4ghgh?gh5gh6ghghegh7gh8gh9ghghxgh:gh;gh<gh=gh>gh?gh@ghAghBghCghDgh<ghEghFghGghHghIghJghKghLghMghNghOghPghQghRghSghTghUghVghWghXghYghZgh[gh\gh]gh^gh_gh`ghaghbghcghdgheghfghgghhghighjghkghlghmghnghoghpghqghrghsghtghughvghwghxghyghzgh{gh|gh}gh~ghghghghghghghghghghghgh6ghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghrghrghghghghghghghghghghghghghghghghghghghghghghghghghghghghghgh?gh5ghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghxghghghgh gh gh ghgh ghghghgh ghghBghghghghghghghghghgh>ghghghghghghghghghghghghgh gh!gh"gh#gh$gh%ghgh&gh'gh(gh)gh*gh+gh,gh-gh.gh/gh0gh1gh2gh3gh4gh5gh6gh7gh8gh9gh:gh;gh<gh=gh>gh?gh@ghAgh7ghBghCghDghw[E[FE[EGH I J K!L"M#[#F#N#O#P#Q#R#S#T#U#V#W#X#u#Y$Z%[&\)[)])^)F)_)`)a*b-c.[.F.d.e/f/g/h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}2~=====================y==========u=34455>>>>>>>>7?????????@@@@deriv_D2co7OF3F0k295fWUwD2xPLanguage.Haskell.TH.CompatLanguage.Haskell.TH.DataLanguage.Haskell.TH.HelperLanguage.Haskell.TH.Peephole!Language.Haskell.TH.ExpandSynonymData.Derive.Class.DefaultData.Derive.Class.AritiesData.Derive.Instance.AritiesLanguage.HaskellLanguage.Haskell.ConvertData.Derive.DSL.HSEData.Derive.DSL.DSLData.Derive.DSL.ApplyData.Derive.DSL.DeriveData.Derive.DSL.SYBData.DeriveDSLLanguage.Haskell.TH.AllData.Derive.Internal.DerivationData.Derive.ArbitraryData.Derive.ArbitraryOldData.Derive.AritiesData.Derive.BinaryData.Derive.BinaryDeferData.Derive.BoundedData.Derive.DataData.Derive.DataAbstractData.Derive.DefaultData.Derive.EnumData.Derive.EnumCyclicData.Derive.EqData.Derive.FoldData.Derive.FromData.Derive.HasData.Derive.IsData.Derive.JSONData.Derive.LazySetData.Derive.LensData.Derive.MonoidData.Derive.NFDataData.Derive.OrdData.Derive.ReadData.Derive.RefData.Derive.SerialData.Derive.SerializeData.Derive.SetData.Derive.ShowData.Derive.TypeableData.Derive.UniplateDirectData.Derive.UniplateTypeableData.Derive.UpdateData.Derive.FoldableData.Derive.FunctorData.Derive.TraversableData.Derive.All Data.DeriveTHData.DeriveMainData.Derive.Internal.Instance Derive.UtilsDerive.Generate Derive.FlagsData.Derive.Internal.TraversalDerive.Derivation Derive.Test Derive.Main fromTyVar instanceDdataDefinitionTypeArgsfrom_cxt typeToPredCtorDefDataDefdataNamequalifiedDataName dataAritydataArgs dataCtorsctorNamequalifiedCtorName ctorArityctorStrictTypes ctorTypes ctorFields dropModule dropNumbernormDataunqualifiedNametypeAppeqConTisTupleTLitClitValconlKvrraw_littuplstNameLiketoName applyWith foldl1With foldr1Withsclause defclausesvalcase'->: instance_noneinstance_defaultinstance_contextsimple_instancegeneric_instancesigNfunNappdataVarsvarsvrnctvctpctcl0l1l2truefalsenilunithNil'hZero'id'consboxreturn'const'hSucc'==:&&:++:>>=:>>:.:>:ap'hCons'&&::++::>>::.:: sequence__liftmk$fLitC() $fLitC(,,) $fLitC(,)$fLitC[] $fLitCChar $fLitCInteger $fValconType $fValconPat $fValconExp $fNameLike[]$fNameLikeNamepeephole replaceVars replaceVar expandDataDefaultdefAritiesarities$fAritiesd_type FullDataDecl FieldDeclCtorDeclDataDecl?forallstyApps fromTyApps fromTyTuple fromTyParen fromTyParenstyRootisTyFun isTyParen fromTyList~=appPsimplify isGuardFalserenameisAtomparenslnoSlisIdenttitleqnamevarcontyVar tyVarBindtyConpVarqvop dataDeclTypedataDeclFields moduleName moduleDecls moduleImports modulePragmas showDeclstyApptyFunappsbindbinds isDataDecldataDeclSrcLocdataDeclContext dataDeclName dataDeclVarsdataDeclVarsStar dataDeclArity dataDeclCtors ctorDeclName ctorDeclName'ctorDeclFields ctorDeclAritydeclNameConvertconvertOutputOStringOIntOAppOListOIgnoreOCustomOutCtorInputsampleoutEqshowOut ctorIndextoInputtoOutput fromOutputcoercereadConout fromStateDSLAppConcatReverseStringShowIntIntListMapFieldMapCtorDataNameCtorName CtorIndex CtorArity FieldIndexFoldHeadTailInstance ApplicationappendfromOut simplifyDSL prettyTexEnvenvInputenvCtorenvFieldenvFoldapplyenvapplyEnvderivedslSYB deriveDSLapplyDSL dynamicDSL DerivationderivationDeriverderivationName derivation derivationQ derivationOpderivationParamsderivationCustom derivationDSLderivationCustomDSL customSplice customContext makeArbitrarymakeArbitraryOlddslArbitraryOld makeArities dslArities makeBinary dslBinarymakeBinaryDeferdslBinaryDefer makeBounded dslBoundedmakeDatamakeDataAbstract makeDefault dslDefaultmakeEnumdslEnummakeEnumCyclic dslEnumCyclicmakeEqdslEqmakeFoldmakeFrommakeHasmakeIsmakeJSON makeLazySetmakeLens makeMonoid makeNFData dslNFDatamakeOrddslOrdmakeReadmakeRef makeSerial dslSerial makeSerialize dslSerializemakeSetmakeShow makeTypeablemakeUniplateDirectmakeUniplateTypeablecustom makeUpdate makeFoldable makeFoldableN makeFunctor makeFunctorNmakeTraversablemakeTraversableN derivationsderives deriveFromDec deriveMaintemplate-haskellLanguage.Haskell.TH.SyntaxLit traceModepeeppeepPatpeepBinsimple expandType expandType' expandSyn substituteBoxctorTypectorRep d_ctorArity d_ctorValue d_dataCtorsbase Data.DataDatahaske_4FklJxiwJoAI0XtFimUoU7Language.Haskell.ExtsreadExtensions'parseFileContentsWithCommentsAndPragmasparseFileContentsWithCommentsparseFileContentsWithModeparseFileContentsWithExtsparseFileContentsparseFileWithCommentsAndPragmasparseFileWithCommentsparseFileWithModeparseFileWithExts parseFileLanguage.Haskell.Exts.Parser getTopPragmasparseImportDeclWithCommentsparseImportDeclWithModeparseImportDeclparseStmtWithCommentsparseStmtWithMode parseStmtparseTypeWithCommentsparseTypeWithMode parseTypeparseDeclWithCommentsparseDeclWithMode parseDeclparsePatWithCommentsparsePatWithModeparsePatparseExpWithCommentsparseExpWithModeparseExpparseModuleWithCommentsparseModuleWithMode parseModulePragmasAndModuleNamePragmasAndModuleHeadModuleHeadAndImports&Language.Haskell.Exts.Annotated.Parser unNonGreedy NonGreedyLanguage.Haskell.Exts.PrettyprettyPrimWithMode prettyPrim prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultMode PPNoLayoutPPInLine PPSemiColon PPOffsideRulePPLayoutIndent linePragmaslayoutspacing onsideIndent whereIndent letIndent caseIndent multiIfIndentdoIndent classIndentPPHsModePrettyLanguage.Haskell.Exts.LexerlexTokenStreamWithModelexTokenStream#Language.Haskell.Exts.InternalLexer showTokenEOFKW_CApi KW_JavaScriptKW_JsKW_Jvm KW_DotNet KW_CPlusPlusKW_CCall KW_StdCallKW_Interruptible KW_Threadsafe KW_UnsafeKW_Safe KW_Export KW_Foreign KW_Pattern KW_QualifiedKW_WhereKW_UsingKW_TypeKW_ThenKW_RoleKW_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_As INCOHERENTOVERLAP NO_OVERLAPMINIMALANNLANGUAGEOPTIONSUNPACKCORE GENERATEDSCCWARNING DEPRECATEDSOURCESPECIALISE_INLINE SPECIALISEINLINE_CONLIKEINLINERULES PragmaEnd XRPatClose XRPatOpenXPCDATA XChildTagOpenXEmptyTagClose XCloseTagOpen XStdTagClose XStdTagOpen XCodeTagClose XCodeTagOpenRPCAt RPGuardClose RPGuardOpen THQuasiQuote THTyQuote THVarQuote THParenEscape THIdEscape THCloseQuote THTypQuote THDecQuote THPatQuote THExpQuoteRightDblArrowTailLeftDblArrowTailRightArrowTail LeftArrowTailStar ExclamationMinus DoubleArrowTildeAt RightArrow LeftArrowBar BackslashEquals DoubleColon QuoteColonColonDotDotDot BackQuote UnderscoreCommaParArrayRightSquareParArrayLeftSquare RightSquare LeftSquare VRightCurly RightCurly LeftCurly SemiColonRightHashParen LeftHashParen RightParen LeftParen StringHash CharacterHash DoubleTokHash FloatTokHash WordTokHash IntTokHash StringTok CharacterFloatTokIntTokQConSymQVarSymConSymVarSymDVarIdQConIdConId ILinVarId IDupVarIdQVarIdVarIdToken Language.Haskell.Exts.ParseMonaddefaultParseModefromParseResultparseWithComments parseWithModeparse Parseable ParseFailedParseOk ParseResultignoreFunctionArityfixitiesignoreLinePragmasignoreLanguagePragmas extensions baseLanguage parseFilename ParseModeLanguage.Haskell.Exts.Fixityinfix_infixl_infixr_ baseFixitiespreludeFixitiesprefixMinusFixityFixity applyFixities AppFixityLanguage.Haskell.Exts.Build metaConPat metaFunctionnameBind patBindWherepatBind simpleFunsfungenNameswildcardnoBindsletStmtgenStmtqualStmtpParenpeListeListlistEaltGWaltcaseEletElamEdoEintPcharPstrPintEcharEstrEfunction pvarTuplevarTuplepTupletuplepAppappFuninfixApppvarqvaropsymnameLanguage.Haskell.Exts.Syntax tuple_tyconunboxed_singleton_tycon list_tycon fun_tycon unit_tycontuple_tycon_nameunboxed_singleton_tycon_namelist_tycon_namefun_tycon_nameunit_tycon_name family_name forall_name capi_namejavascript_namejs_namejvm_name dotnet_namecplusplus_name ccall_name stdcall_namethreadsafe_nameinterruptible_name unsafe_name safe_name export_name star_namedot_name bang_name minus_name hiding_namequalified_nameas_nameunboxed_singleton_con tuple_conunit_conunboxed_singleton_con_namelist_cons_nametuple_con_name unit_con_name main_namemain_mod prelude_mod ModuleNameUnboxedSingleConConsTupleConFunConListConUnitCon SpecialConSpecialUnQualQualQNameSymbolIdentNameIPLinIPDupIPNameQConOpQVarOpQOpConOpVarOpOpConNameVarNameCNameModuleEModuleContents EThingWith EThingAllEAbsEVar ExportSpecPatternNamespace TypeNamespace NoNamespace Namespace importSpecsimportAs importPkg importSafe importSrcimportQualified importModule importLoc ImportDecl IThingWith IThingAllIAbsIVar ImportSpec AssocRight AssocLeft AssocNoneAssocDeriving RoleAnnotDecl MinimalPragma AnnPragmaInstSig SpecInlineSigSpecSigInlineConlikeSig InlineSigWarnPragmaDeclDeprPragmaDeclRulePragmaDeclPatSynForExpForImpPatBindFunBind PatSynSigTypeSig SpliceDecl DefaultDecl InfixDecl DerivDeclInstDecl ClassDecl GDataInsDecl DataInsDecl TypeInsDecl DataFamDecl GDataDeclClosedTypeFamDecl TypeFamDeclTypeDeclDeclExplicitBidirectionalImplicitBidirectionalUnidirectionalPatternSynDirectionTypeEqn ModuleAnnTypeAnnAnn Annotation ParenFormula OrFormula AndFormula VarFormulaBooleanFormula RoleWildcardPhantomRepresentationalNominalRoleNewTypeDataType DataOrNewIPBindsBDeclsBindsIPBindMatch QualConDeclRecDecl InfixConDeclConDeclGadtDecl ClsDefSigClsTyDefClsTyFam ClsDataFamClsDeclInsGDataInsDataInsTypeInsDecl UnpackedTyBangedTyBangType GuardedRhss UnGuardedRhsRhs GuardedRhs TyWildCardTyBangTySpliceTyEquals TyPromotedTyKindTyInfixTyParenTyConTyVarTyApp TyParArrayTyListTyTupleTyFunTyForallType PromotedUnit PromotedTuple PromotedList PromotedConPromotedStringPromotedIntegerPromoted UnkindedVar KindedVar TyVarBindKindList KindTupleKindAppKindVar KindParenKindFnKindStarKindFunDepContext WildCardAParenAEqualPIParamInfixAAppAClassAAsst PrimStringPrimChar PrimDouble PrimFloatPrimWordPrimIntFracCharLiteralNegativeSignlessSignExprHoleLCaseRightArrHighAppLeftArrHighApp RightArrApp LeftArrAppProc GenPragma SCCPragma CorePragma XChildTagXExpTagXPcdataXETagXTag QuasiQuote SpliceExp BracketExpTypQuoteVarQuote ExpTypeSig ParArrayCompParCompListCompParArrayFromThenToParArrayFromToEnumFromThenTo EnumFromThen EnumFromToEnumFrom RecUpdate RecConstr RightSection LeftSectionParenParArray TupleSectionTupleMDoDoCaseMultiIfIfLetLambdaNegAppInfixAppConIPVarVarExpXDomNameXNameXAttr DeclBracket TypeBracket PatBracket ExpBracketBracket ParenSpliceIdSpliceSplicePlayInterruptiblePlaySafe PlayRiskySafetyCApi JavaScriptJsJvmDotNet CPlusPlusCCallStdCallCallConvAnnModulePragma OptionsPragmaLanguagePragma ModulePragma IncoherentOverlap NoOverlap ActiveUntil ActiveFrom AlwaysActive ActivationRule TypedRuleVarRuleVarWarnTextDeprText WarningTextPBangPat PQuasiQuotePXRPatsPXPatTagPXPcdataPXETagPXTagPRPatPViewPat PatTypeSigPIrrPat PWildCardPAsPatPRecPParenPListPTuplePApp PInfixAppPNPlusKPLitPVarPatPXAttrRPOptGRPOptRPPlusGRPPlusRPStarGRPStarRPatOpRPPatRPParenRPAsRPCAsRPGuardRPSeqRPEitherRPOpRPatPFieldWildcard PFieldPun PFieldPatPatFieldRecStmtLetStmt Qualifier GeneratorStmt GroupByUsing GroupUsingGroupByThenBy ThenTransQualStmt FieldWildcardFieldPun FieldUpdateAltLanguage.Haskell.Exts.ExtensiontoExtensionListprettyExtensionparseExtensionclassifyExtensiondeprecatedExtensionsknownExtensions ghcDefault glasgowExts impliesExtsprettyLanguageclassifyLanguageknownLanguagesUnknownLanguageHaskellAllDisabled Haskell2010 Haskell98LanguageUnknownExtensionDisableExtensionEnableExtension ExtensionNamedWildCardsPartialTypeSignaturesPatternSynonymsRoleAnnotationsConstraintKindsDefaultSignatures TrustworthySafe SafeImports MultiWayIf PolyKinds DataKindsExplicitNamespacesCApiFFIInterruptibleFFINondecreasingIndentationDeriveFoldableDeriveTraversable DeriveGeneric DeriveFunctorMonoLocalBindsDatatypeContextsExplicitForAllRebindableSyntaxDoAndIfThenElseNPlusKPatternsGHCForeignImportPrim TupleSectionsRegularPatterns XmlSyntax ViewPatternsTransformListComp QuasiQuotesPostfixOperatorsNewQualifiedOperatorsImpredicativeTypes LambdaCasePackageImportsConstrainedClassMethodsDeriveDataTypeable UnboxedTuplesExtendedDefaultRulesRelaxedPolyRec MonoPatBindsGADTsOverloadedStringsDisambiguateRecordFields RecordPunsRecordWildCardsParallelArrays TypeOperatorsLiberalTypeSynonymsUnliftedFFITypes UnicodeSyntaxStandaloneDeriving TypeFamiliesBinaryLiterals MagicHash HereDocumentsRestrictedTypeSynonymsExtensibleRecordsGeneralizedNewtypeDeriving PatternGuardsNamedFieldPunsImplicitPreludeGenericsArrowsForeignFunctionInterfaceTemplateHaskellTypeSynonymInstances BangPatternsKindSignaturesCPPEmptyDataDeclsFlexibleInstancesFlexibleContextsImplicitParamsPatternSignaturesScopedTypeVariablesExistentialQuantificationPolymorphicComponents RankNTypes Rank2TypesFunctionalDependenciesMonomorphismRestrictionMultiParamTypeClassesParallelListComp RecursiveDoDoRec InstanceSigsIncoherentInstancesUndecidableInstancesOverlappingInstancesKnownExtensionLanguage.Haskell.Exts.CommentsComment UnknownPragmaLanguage.Haskell.Exts.SrcLoc srcColumnsrcLine srcFilenameSrcLocunLoclocLoc&Language.Haskell.Exts.Annotated.SyntaxUnboxedBoxed UnknownToolHADDOCKYHCNHC98HUGSGHCToolprett_JItwetRppk1H5Uq3xbjDGCText.PrettyPrint.HughesPJModePageMode ZigZagModeLeftMode OneLineModeStylemode lineLengthribbonsPerLinestyleconvappTc$fConvertKindType$fConvertTyVarBindTyVarBndr$fConvertTypeKind$fConvertTyVarBndrTyVarBind$fConvertTyVarBindName$fConvertFieldUpdate(,)$fConvertQualStmtStmt$fConvertStmtStmt$fConvertAltMatch$fConvertQOpExp$fConvertPatField(,)$fConvertQNameName$fConvertLiteralLit$fConvertPatPat$fConvertMaybe[]$fConvertBinds[]$fConvertGuardedRhs(,)$fConvertExpExp$fConvertRhsBody$fConvertMatchClause$fConvertNameName$fConvertTypeType$fConvertAsstType$fConvert(,)[]$fConvertType(,)$fConvertConDeclCon$fConvertQualConDeclCon$fConvertDeclDec$fConvertTypeAsst$fConvertTypeType0$fConvert(,)Type$fConvertConConDecl$fConvertConQualConDecl$fConvertNameQName$fConvertNameName0$fConvertNameTyVarBind$fConvertDecDecl $fConvert[][] GuessStateGuessGuessFldGuessCtrctrNamesguess guessListgssFoldgssApplift fromGuesstoGuessmaximsyb&dlistAnydlistdappdsimple dinstancedstringdmapctordsingle dapplicationvPragmaExampleTestSrcsrcName srcImport srcExamplesrcTest srcCustom srcImportStdnullSrcreadHSEasPragmareadSrcgeneratedStart generatedStopwriteGenerated readFile'writeBinaryFilereprepsevilgenerate generateFilepkgUrlinstUrlwraplexemeslexemeFlagVersionHelpImportModuAppendDeriveNoOpts PreprocessorGenerateoptionsflagInfogetFlagspickFileaddFlagsreturnQbindQ sequenceQnewNamemkName mkNameG_v mkNameG_d mkNameG_tcmkNameLunTypeunTypeQunsafeTExpCoerce liftStringClauseQDecFieldExpFieldPatPred TyVarBndrTExpNoInlineInline InlinableConLikeFunLike AllPhases FromPhase BeforePhasethenCmpcmpEq defaultFixity maxPrecedencemk_unboxed_tup_nameunboxedTupleTypeNameunboxedTupleDataName mk_tup_name tupleTypeName tupleDataName showName'showNamemkNameGmkNameU nameModulenameBase occString mkOccName pkgString mkPkgName modString mkModName rightNameleftNamejustName nothingName falseNametrueNameputQgetQaddModFinalizer addTopDeclsaddDependentFilerunIOlocation isInstance reifyModulereifyAnnotations reifyRolesreifyInstancesreifylookupValueNamelookupTypeName lookupNamerecover reportWarning reportErrorreportrunQcounterbadIOqPutQqGetQqAddModFinalizer qAddTopDeclsqAddDependentFileqRunIO qLocation qReifyModuleqReifyAnnotations qReifyRolesqReifyInstancesqReify qLookupNameqRecoverqReportqNewNameQuasiunQLiftModNamePkgNameOccNameNameGNameLNameUNameQNameS NameFlavour TcClsName NameSpaceUniqInfixAppliedAloneNameIsloc_end loc_start loc_module loc_package loc_filenameCharPosTyVarIVarIDataConI PrimTyConIFamilyITyConIClassOpIClassIInfo ModuleInfo ParentNameArityUnlifted InstanceDecInfixNInfixRInfixLFixityDirection StringPrimL DoublePrimL FloatPrimL WordPrimLIntPrimL RationalLIntegerLStringLCharLViewPSigPListPRecPWildPAsPBangPTildePParensPUInfixPInfixPConP UnboxedTupPTupPVarPLitPStaticERecUpdERecConESigEListE ArithSeqECompEDoECaseELetEMultiIfECondE UnboxedTupETupELamCaseELamEParensEUInfixEInfixEAppELitEConEVarENormalBGuardedBBodyPatGNormalGGuardParSNoBindSLetSBindS FromThenToRFromToR FromThenRFromRRange DefaultSigDStandaloneDerivD RoleAnnotDClosedTypeFamilyD TySynInstD NewtypeInstD DataInstDFamilyDPragmaDInfixDForeignDSigD InstanceDClassDTySynDNewtypeDDataDValDFunDTySynEqnDataFamTypeFam FamFlavourExportFImportFForeignPrimCallconv InterruptibleUnsafeLinePAnnPRulePSpecialiseInstP SpecialisePInlineP RuleMatchPhasesRuleBndrValueAnnotationTypeAnnotationModuleAnnotation AnnTargetCxtUnpacked NotStrictIsStrictStrictForallCInfixCRecCNormalC StrictType VarStrictTypeLitT ConstraintTStarT PromotedConsT PromotedNilTPromotedTupleTListT EqualityTArrowT UnboxedTupleTTupleT PromotedTConTVarTSigTAppTForallTKindedTVPlainTVStrTyLitNumTyLitTyLitInferRPhantomRRepresentationalRNominalR AnnLookupNameAnnLookupModule AnnLookupcontextsplicemkFoldfoldType makeFromCtortyTuplevalTuple makeHasField makeIsCtormkShowmkShowPlainFieldsmkShowRecordFieldsmkRead mkReadCtor mkReadRecordmkReadRecordField mkReadPlain mkReadTrailer mkJSObject mkJSArraypVarsmakeLazySetField makeLensField dslMonoidgetCtor hasFieldsreadCtor readFieldsmatchStr makeRefField makeSetField customPlain customFields mkTypeableinstshowNSAnsHitMissTryListHitListTrymakemake1ansListansJoinrunoperator operator2subst substData substType knownCtorslistCtor tupleDefn $fShowAnsmakeUpdateField ArgPositions WithInstances_requiredDataArg_requiredPosition TraveralType traversalArg traversalCo traversalName traversalIdtraversalDirect traversalFunc traversalPlus traverseArrow traverseTuple traverseCtor traverseFuncTravtraversalDerivation1traversalInstance1traversalInstancederiveTraversalData.TraversabletraversederiveTraversalCtorderiveTraversalTypederiveTraversalApp traverseArg argPositionsRequiredInstancedefaultTraversalTypetraversalNameNfoldrTraversalfunctorTraversalfunctorForArrowTypetraverseTraversalliftAN wantDerivewantDeriveFlagwantDeriveAnnotation moduleDerives performDerivegetDecl getDerivation writeDerivetoFullDataDecloverlapsexcludeprioritylistTypetesttestFile detailedNeqautoTest isBuiltInmainFile uncommentdefaultExtensions badExtensions