c      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                !"#$%&'()*+,-./0123456789:;<=>? @!A"B#C$D%E&F'G(H(I)J)K*L+M,N,O-P-Q.R/S0T1U2V2W3X4Y4Z5[5\6]6^7_8`8a8b9ANoneNone    NoneF*Expand type synonyms in a data declarationcdefcdefNone2 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI  !"#$%&'()*+,-./012345672 !"#$IHG%&F'()*ED+C,BA-@./?>=<012;345:67980 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHINone24JVThis class is used to overload literal construction based on the type of the literal.LThe 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.MTBuild an application node, with a name for a head and a provided list of arguments.NReference a named variable.O Lift a TH gPTuplingQListingW)A simple clause, without where or guards.X"A default clause with N arguments.YA 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 typesa5Build a type signature declaration with a string nameb"Build a fundecl with a string namec.Build an application node without a given heade.Common pattern: list of a familiy of variablesf#Variable based on a letter + numberg@Make a list of variables, one for each argument to a constructorh+Make a simple pattern to bind a constructori Reference the constructor itselfBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)Build a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)Build a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)Build a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)Build a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically) K-way liftMIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~>JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ITVUWXYZ[\]^_`abRSLMNOPQcJKdefghijklmonqrpstuvwxy~}|{zBJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneF hijklm hijklm Safe-Inferred: Safe-Inferred:M nopqrstuvwtuvnopqrstuv Safe-Inferred  Safe-Inferred24M None;pxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;; None246M,+ None+xyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmpqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None+            None           NoneF NoneHMNone;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{|}~g      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde  !"#$%&'()*+,-./01234567JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None  !"#$%&'()  !"#$%&'()  !"#$%&'() !"#$%&'()None*fg***fgNone+,+,+,+,None-.-.-.-.None/0/0/0/0None12121212None34343434None5hij555hijNone6kl666klNone78787878None9:9:9:9:None;<;<;<;<None=>=>=>=> None?mn???mn!None@opq@@@opq"NoneArAAAr#NoneBsBBBs$(c) Bertram Felgenhauer 2009BSD3 experimentalportableNoneC  for JSONCtuvwxyz{|}~CCCtuvwxyz{|}~%NoneDDDD&NoneEEEE'NoneFFFF(NoneGHGHGHGH)NoneIJIJIJIJ*NoneFKKKK+NoneLLLL,NoneMNMNMNMN-NoneOPOPOPOP.NoneQQQQ/NoneRRRR0NoneSSSS1NoneFTTTT2NoneUVUVUVUV3NoneWWWW>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 function Identity traversal  Traversal of a !Apply the sub-traversal function .Apply two non-identity traversals in sequence Traverse 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 method 9Instance for a Traversable like class with just 1 method &Instance for a Traversable like class  Derive a traverse like function Derive a clause of a traverse! like function for a constructor Derive a traversal for a type BFind all arguments to a type application, then derive a traversal 7Lift a traversal to the argument of a type constructor sPosition of an argument in the data type In the type "data X a b c" positions are: a -> 3, b -> 2, c -> 1  4NoneXYXYXYXY5NoneZ[Z[Z[Z[6None\]\]\]\]?None7None^6 *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ ^^8None_"Derive an instance of some class. derive6 only derives instances for the type of the argument.a"Derive an instance of some class.  deriveFromDec6 only derives instances for the type of the argument._`a9 *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a_`a_`a@None  ANonebbb9NonebbBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                      ! " # $ % & G K L N ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E FGGHIJKLMNOPQRSTTUVWXTTVYZ[\]^_`abcdefghijklmnopqrst u!v"w#x$y%z&{'|(}(~))*+,,--./0122344556678O88A:::":":::::      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHHIJKLMNOPQRSTUVWXXYYZZ[\][^^_`abc2defg3hijklmnnopqrstuvwxyz{|}~?=B<      !"#$%&'()*+,-./01234567289:8;;<=<><?<@<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<{<|<}<~<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<                                               ;;;;;;;;;;;;;;;;;; ;!;";#;$<%<&<'<(<)<*<+<,=-=.==/=0=1=2=3=4==5=6=7=8=9=:=;<=>?@ABCDEFGHYIJ~KLMNOPQRSTUVWXPYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~J   9YI1      !"#$%&'()*R+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\[[ ] ^!_!`!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/{0|0}0~1111111111111111111113>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>45566????????8@@@@@@@@@AAAA derive-2.5.21Language.Haskell.TH.CompatLanguage.Haskell.TH.Data!Language.Haskell.TH.ExpandSynonymLanguage.Haskell.TH.FixedPprLanguage.Haskell.TH.HelperLanguage.Haskell.TH.PeepholeData.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 fromTyVardataDefinitionTypeArgs typeToPredCtorDefDataDefdataNamequalifiedDataName dataAritydataArgs dataCtorsctorNamequalifiedCtorName ctorArityctorStrictTypes ctorTypes ctorFields dropModule dropNumbernormDataunqualifiedNametypeAppeqConTisTupleT expandDataPprpprppr_list Precedence nestDepthappPrecopPrecnoPrecparensIf showNameRaw isPrefixNamepprName_pprintppr_sig pprFixity pprExpInfixpprExp pprFields pprMaybeExppprBodypprLitpprPat deQualLhsHead deQualNamepprVarStrictType pprStrictType pprParendTypepprTyAppsplitpprCxt where_clause showtextl $fPprPred$fPprTyVarBndr $fPprRange $fPprType$fPprCon $fPprClause $fPprForeign $fPprFunDep$fPprDec$fPprPat$fPprLit $fPprBody $fPprMatch $fPprStmt$fPprExp $fPprInfo $fPprName$fPpr[]LitClitValconlKvrraw_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 replaceVarDefaultdefAritiesarities$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 ctorDeclAritydeclNameConvertconvertOutputOCustomOIgnoreOListOAppOIntOStringOutCtorInputsampleoutEqshowOut ctorIndextoInputtoOutput fromOutputcoercereadConout fromStateDSL ApplicationInstanceTailHeadFold FieldIndex CtorArity CtorIndexCtorNameDataNameMapCtorMapFieldListIntShowIntStringReverseConcatAppappendfromOut 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 deriveMain expandType expandType' expandSyn substitutetemplate-haskellLanguage.Haskell.TH.SyntaxLit traceModepeeppeepPatpeepBinsimpleBoxctorTypectorRep d_ctorArity d_ctorValue d_dataCtorsbase Data.DataDatahaskell-src-exts-1.16.0.1Language.Haskell.ExtsreadExtensions'parseFileContentsWithCommentsAndPragmasparseFileContentsWithCommentsparseFileContentsWithModeparseFileContentsWithExtsparseFileContentsparseFileWithCommentsAndPragmasparseFileWithCommentsparseFileWithModeparseFileWithExts parseFileLanguage.Haskell.Exts.Parser getTopPragmasparseImportDeclWithCommentsparseImportDeclWithModeparseImportDeclparseStmtWithCommentsparseStmtWithMode parseStmtparseTypeWithCommentsparseTypeWithMode parseTypeparseDeclWithCommentsparseDeclWithMode parseDeclparsePatWithCommentsparsePatWithModeparsePatparseExpWithCommentsparseExpWithModeparseExpparseModuleWithCommentsparseModuleWithMode parseModule&Language.Haskell.Exts.Annotated.Parser unNonGreedy NonGreedyLanguage.Haskell.Exts.Pretty prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultMode PPOffsideRule PPSemiColonPPInLine PPNoLayoutPPLayoutIndent linePragmaslayoutspacing onsideIndent whereIndent letIndent caseIndent multiIfIndentdoIndent classIndentPPHsModePrettyLanguage.Haskell.Exts.LexerlexTokenStreamWithModelexTokenStream#Language.Haskell.Exts.InternalLexer showTokenVarIdQVarId IDupVarId ILinVarIdConIdQConIdDVarIdVarSymConSymQVarSymQConSymIntTokFloatTok Character StringTok IntTokHash WordTokHash FloatTokHash DoubleTokHash CharacterHash StringHash LeftParen RightParen LeftHashParenRightHashParen SemiColon LeftCurly RightCurly VRightCurly LeftSquare RightSquareParArrayLeftSquareParArrayRightSquareComma Underscore BackQuoteDotDotDotColon QuoteColon DoubleColonEquals BackslashBar LeftArrow RightArrowAtTilde DoubleArrowMinus ExclamationStar LeftArrowTailRightArrowTailLeftDblArrowTailRightDblArrowTail THExpQuote THPatQuote THDecQuote THTypQuote THCloseQuote THIdEscape THParenEscape THVarQuote THTyQuote THQuasiQuote RPGuardOpen RPGuardCloseRPCAt XCodeTagOpen XCodeTagClose XStdTagOpen XStdTagClose XCloseTagOpenXEmptyTagClose XChildTagOpenXPCDATA XRPatOpen XRPatClose PragmaEndRULESINLINEINLINE_CONLIKE SPECIALISESPECIALISE_INLINESOURCE DEPRECATEDWARNINGSCC GENERATEDCOREUNPACKOPTIONSLANGUAGEANNMINIMAL NO_OVERLAPOVERLAP INCOHERENTKW_AsKW_ByKW_CaseKW_ClassKW_Data KW_Default KW_DerivingKW_DoKW_MDoKW_Else KW_Family KW_ForallKW_Group KW_HidingKW_If KW_ImportKW_InKW_Infix KW_InfixL KW_InfixR KW_InstanceKW_Let KW_Module KW_NewTypeKW_OfKW_ProcKW_RecKW_ThenKW_TypeKW_UsingKW_Where KW_Qualified KW_Foreign KW_ExportKW_Safe KW_Unsafe KW_ThreadsafeKW_Interruptible KW_StdCallKW_CCall KW_CPlusPlus KW_DotNetKW_JvmKW_JsKW_CApiEOFToken Language.Haskell.Exts.ParseMonaddefaultParseModefromParseResultparseWithComments parseWithModeparse ParseableParseOk ParseFailed ParseResultfixitiesignoreLinePragmasignoreLanguagePragmas 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_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 ModuleNameUnitConListConFunConTupleConConsUnboxedSingleCon SpecialConQualUnQualSpecialQNameIdentSymbolNameIPDupIPLinIPNameQVarOpQConOpQOpVarOpConOpOpVarNameConNameCNameModuleEVarEAbs EThingAll EThingWithEModuleContents ExportSpec NoNamespace TypeNamespace Namespace importSpecsimportAs importPkg importSafe importSrcimportQualified importModule importLoc ImportDeclIVarIAbs IThingAll IThingWith ImportSpec AssocNone AssocLeft AssocRightAssocDerivingTypeDecl TypeFamDeclClosedTypeFamDecl GDataDecl DataFamDecl TypeInsDecl DataInsDecl GDataInsDecl ClassDeclInstDecl DerivDecl InfixDecl DefaultDecl SpliceDeclTypeSigFunBindPatBindForImpForExpRulePragmaDeclDeprPragmaDeclWarnPragmaDecl InlineSigInlineConlikeSigSpecSig SpecInlineSigInstSig AnnPragma MinimalPragmaDeclTypeEqnAnnTypeAnn ModuleAnn Annotation VarFormula AndFormula OrFormula ParenFormulaBooleanFormulaDataTypeNewType DataOrNewBDeclsIPBindsBindsIPBindMatch QualConDeclConDecl InfixConDeclRecDeclGadtDeclClsDecl ClsDataFamClsTyFamClsTyDef ClsDefSigInsDeclInsTypeInsDataInsGDataBangedTy UnpackedTyBangType UnGuardedRhs GuardedRhssRhs GuardedRhsTyForallTyFunTyTupleTyList TyParArrayTyAppTyVarTyConTyParenTyInfixTyKind TyPromotedTyEqualsTySpliceTyBangTypePromotedIntegerPromotedString PromotedCon PromotedList PromotedTuple PromotedUnitPromoted KindedVar UnkindedVar TyVarBindKindStarKindBangKindFn KindParenKindVarKindApp KindTupleKindListKindFunDepContextClassAAppAInfixAIParamEqualPParenAAsstCharFracPrimIntPrimWord PrimFloat PrimDoublePrimChar PrimStringLiteralSignlessNegativeSignVarIPVarConInfixAppNegAppLambdaLetIfMultiIfCaseDoMDoTuple TupleSectionParArrayParen LeftSection RightSection RecConstr RecUpdateEnumFrom EnumFromTo EnumFromThenEnumFromThenToParArrayFromToParArrayFromThenToListCompParComp ParArrayComp ExpTypeSigVarQuoteTypQuote BracketExp SpliceExp QuasiQuoteXTagXETagXPcdataXExpTag XChildTag CorePragma SCCPragma GenPragmaProc LeftArrApp RightArrAppLeftArrHighAppRightArrHighAppLCaseExpXNameXDomNameXAttr ExpBracket PatBracket TypeBracket DeclBracketBracketIdSplice ParenSpliceSplice PlayRiskyPlaySafePlayInterruptibleSafetyStdCallCCall CPlusPlusDotNetJvmJsCApiCallConvLanguagePragma OptionsPragmaAnnModulePragma ModulePragma NoOverlapOverlap Incoherent AlwaysActive ActiveFrom ActiveUntil ActivationRuleRuleVar TypedRuleVarDeprTextWarnText WarningTextPVarPLitPNPlusK PInfixAppPAppPTuplePListPParenPRecPAsPat PWildCardPIrrPat PatTypeSigPViewPatPRPatPXTagPXETagPXPcdataPXPatTagPXRPats PQuasiQuotePBangPatPatPXAttrRPStarRPStarGRPPlusRPPlusGRPOptRPOptGRPatOpRPOpRPEitherRPSeqRPGuardRPCAsRPAsRPParenRPPatRPat PFieldPat PFieldPunPFieldWildcardPatField Generator QualifierLetStmtRecStmtStmtQualStmt ThenTransThenByGroupBy GroupUsing GroupByUsing FieldUpdateFieldPun FieldWildcardAltLanguage.Haskell.Exts.ExtensiontoExtensionListprettyExtensionparseExtensionclassifyExtensiondeprecatedExtensionsknownExtensions ghcDefault glasgowExts impliesExtsprettyLanguageclassifyLanguageknownLanguages Haskell98 Haskell2010HaskellAllDisabledUnknownLanguageLanguageEnableExtensionDisableExtensionUnknownExtension ExtensionOverlappingInstancesUndecidableInstancesIncoherentInstances InstanceSigsDoRec RecursiveDoParallelListCompMultiParamTypeClassesMonomorphismRestrictionFunctionalDependencies Rank2Types RankNTypesPolymorphicComponentsExistentialQuantificationScopedTypeVariablesPatternSignaturesImplicitParamsFlexibleContextsFlexibleInstancesEmptyDataDeclsCPPKindSignatures BangPatternsTypeSynonymInstancesTemplateHaskellForeignFunctionInterfaceArrowsGenericsImplicitPreludeNamedFieldPuns PatternGuardsGeneralizedNewtypeDerivingExtensibleRecordsRestrictedTypeSynonyms HereDocuments MagicHashBinaryLiterals TypeFamiliesStandaloneDeriving UnicodeSyntaxUnliftedFFITypesLiberalTypeSynonyms TypeOperatorsParallelArraysRecordWildCards RecordPunsDisambiguateRecordFieldsOverloadedStringsGADTs MonoPatBindsRelaxedPolyRecExtendedDefaultRules UnboxedTuplesDeriveDataTypeableConstrainedClassMethodsPackageImports LambdaCaseImpredicativeTypesNewQualifiedOperatorsPostfixOperators QuasiQuotesTransformListComp ViewPatterns XmlSyntaxRegularPatterns TupleSectionsGHCForeignImportPrimNPlusKPatternsDoAndIfThenElseRebindableSyntaxExplicitForAllDatatypeContextsMonoLocalBinds DeriveFunctor DeriveGenericDeriveTraversableDeriveFoldableNondecreasingIndentationInterruptibleFFICApiFFIExplicitNamespaces DataKinds PolyKinds MultiWayIf SafeImportsSafe TrustworthyDefaultSignaturesConstraintKindsKnownExtensionLanguage.Haskell.Exts.CommentsComment UnknownPragmaLanguage.Haskell.Exts.SrcLoc srcColumnsrcLine srcFilenameSrcLocunLoclocLoc&Language.Haskell.Exts.Annotated.SyntaxBoxedUnboxedGHCHUGSNHC98YHCHADDOCK UnknownToolToolpretty-1.1.1.1Text.PrettyPrint.HughesPJMode OneLineModeLeftMode ZigZagModePageModeStylemode lineLengthribbonsPerLinestyleconvappTc$fConvertKindType$fConvertTyVarBindTyVarBndr$fConvertAsstPred$fConvertPredAsst$fConvertTypeKind$fConvertTyVarBndrTyVarBind$fConvertTyVarBindName$fConvertFieldUpdate(,)$fConvertQualStmtStmt$fConvertStmtStmt$fConvertAltMatch$fConvertQOpExp$fConvertPatField(,)$fConvertQNameName$fConvertLiteralLit$fConvertPatPat$fConvertBinds[]$fConvertGuardedRhs(,)$fConvertExpExp$fConvertRhsBody$fConvertMatchClause$fConvertNameName$fConvertTypeType$fConvertAsstType$fConvert(,)[]$fConvertType(,)$fConvertConDeclCon$fConvertQualConDeclCon$fConvertDeclDec$fConvertTypeAsst$fConvertTypeType0$fConvert(,)Type$fConvertConConDecl$fConvertConQualConDecl$fConvertNameQName$fConvertNameName0$fConvertNameTyVarBind$fConvertDecDecl $fConvert[][] GuessStateGuessGuessCtrGuessFldctrNamesguess guessListgssFoldgssApplift fromGuesstoGuessmaximsyb&dlistAnydlistdappdsimple dinstancedstringdmapctordsingle dapplicationvPragmaTestExampleSrcsrcName srcImport srcExamplesrcTest srcCustom srcImportStdnullSrcreadHSEasPragmareadSrcgeneratedStart generatedStopwriteGenerated readFile'writeBinaryFilereprepsevilgenerate generateFilepkgUrlinstUrlwraplexemeslexemeFlagGenerate PreprocessorNoOptsDeriveAppendModuImportHelpVersionoptionsflagInfogetFlagspickFileaddFlagsreturnQbindQ 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 nameModulenameBasety_NameFlavour con_NameG con_NameL con_NameU con_NameQ con_NameS occString mkOccName pkgString mkPkgName modString mkModName rightNameleftNamejustName nothingName falseNametrueNameputQgetQaddModFinalizer addTopDeclsaddDependentFilerunIOlocation isInstance reifyModulereifyAnnotations reifyRolesreifyInstancesreifylookupValueNamelookupTypeName lookupNamerecover reportWarning reportErrorreportrunQcounterbadIOqPutQqGetQqAddModFinalizer qAddTopDeclsqAddDependentFileqRunIO qLocation qReifyModuleqReifyAnnotations qReifyRolesqReifyInstancesqReify qLookupNameqRecoverqReportqNewNameQuasiunQLiftModNamePkgNameOccNameNameSNameQNameUNameLNameG NameFlavour TcClsName NameSpaceUniqAloneAppliedInfixNameIsloc_end loc_start loc_module loc_package loc_filenameCharPosClassIClassOpITyConIFamilyI PrimTyConIDataConIVarITyVarIInfo ModuleInfo ParentNameArityUnlifted InstanceDecInfixLInfixRInfixNFixityDirectionCharLStringLIntegerL RationalLIntPrimL WordPrimL FloatPrimL DoublePrimL StringPrimLLitPVarPTupP UnboxedTupPConPInfixPUInfixPParensPTildePBangPAsPWildPRecPListPSigPViewPVarEConELitEAppEInfixEUInfixEParensELamELamCaseETupE UnboxedTupECondEMultiIfELetECaseEDoECompE ArithSeqEListESigERecConERecUpdEGuardedBNormalBBodyNormalGPatGGuardBindSLetSNoBindSParSFromR FromThenRFromToR FromThenToRRangeFunDValDDataDNewtypeDTySynDClassD InstanceDSigDForeignDInfixDPragmaDFamilyD DataInstD NewtypeInstD TySynInstDClosedTypeFamilyD RoleAnnotDTySynEqnTypeFamDataFam FamFlavourImportFExportFForeignCallconvUnsafe InterruptibleInlineP SpecialisePSpecialiseInstPRulePAnnP RuleMatchPhasesRuleBndrModuleAnnotationTypeAnnotationValueAnnotation AnnTargetCxtClassPIsStrict NotStrictUnpackedStrictNormalCRecCInfixCForallC StrictType VarStrictTypeForallTAppTSigTVarTConT PromotedTTupleT UnboxedTupleTArrowTListTPromotedTupleT PromotedNilT PromotedConsTStarT ConstraintTLitTPlainTVKindedTVNumTyLitStrTyLitTyLitNominalRRepresentationalRPhantomRInferRRoleAnnLookupModule AnnLookupName AnnLookupcontextsplicemkFoldfoldType makeFromCtortyTuplevalTuple makeHasField makeIsCtormkShowmkShowPlainFieldsmkShowRecordFieldsmkRead mkReadCtor mkReadRecordmkReadRecordField mkReadPlain mkReadTrailer mkJSObject mkJSArraypVarsmakeLazySetField makeLensField dslMonoidgetCtor hasFieldsreadCtor readFieldsmatchStr makeRefField makeSetField customPlain customFields mkTypeableinstshowNSAnsListTryListHitTryMissHitmakemake1ansListansJoinrunoperator operator2subst substData substType knownCtorslistCtor tupleDefn $fShowAnsmakeUpdateField ArgPositions WithInstances_requiredDataArg_requiredPosition TraveralType traversalArg traversalCo traversalName traversalIdtraversalDirect traversalFunc traversalPlus traverseArrow traverseTuple traverseCtor traverseFuncTravtraversalDerivation1traversalInstance1traversalInstancederiveTraversalderiveTraversalCtorderiveTraversalTypederiveTraversalApp traverseArg argPositionsRequiredInstancedefaultTraversalTypetraversalNameNfoldrTraversalfunctorTraversalfunctorForArrowTypetraverseTraversalliftAN wantDerivewantDeriveFlagwantDeriveAnnotation moduleDerives performDerivegetDecl getDerivation writeDerivetoFullDataDecloverlapsexcludeprioritylistTypetesttestFile detailedNeqautoTest isBuiltInmainFile uncommentdefaultExtensions badExtensions