gS       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !""#$%&'()*+,-.//01233354      !"#$%&'()*+,-./0 !"#$%&'()*+,-./0 !"#$%&'()*+,-./01+Expand type synonyms in a data declaration 1112AThis class is used to overload literal construction based on the  type of the literal. 4?The class used to overload lifting operations. To reduce code C duplication, we overload the wrapped constructors (and everything  else, but that'4s irrelevant) to work in patterns, expressions, and  types. 58Build an application node, with a name for a head and a  provided list of arguments. 6Reference a named variable. 7 Lift a TH  56 8Tupling 9Listing ?*A simple clause, without where or guards. @#A default clause with N arguments. AA simple Val clause D,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 GBBuild an instance of a class for a data type, using the heuristic 9 that the type is itself required on all type arguments. HQBuild an instance of a class for a data type, using the class at the given types I6Build a type signature declaration with a string name J#Build a fundecl with a string name K/Build an application node without a given head M/Common pattern: list of a familiy of variables N$Variable based on a letter + number OAMake a list of variables, one for each argument to a constructor P,Make a simple pattern to bind a constructor Q!Reference the constructor itself i;Build a chain of expressions, with an appropriate terminal Z sequence__ does not require a unit at the end (all others are optimised automatically) m K-way liftM >23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XY Z[\]^_`abcdefghijklm<=><?@ABCDEFGHIJ:;456789K23LMNOPQRSTVWUYXZ[]\^`abcdfe_gijlkhm<23345678956789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopnponopq$The type of ways to derive classes. ( Should not really be in this module! sThe derivation function proper tThe name of the derivation 2  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno pqrstuvwxyz{|}~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XY Z[\]^_`abcdefghijklmnopqrstuvqrstuvqrstrstuvW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~wxyz{|}~{|}~zyxwwxyz{|}~   7 m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~wxyz{|}~       "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 )Position of an argument in the data type  In the type  data X a b c ) positions are: a -> 3, b -> 2, c -> 1   !"#$%&'() !"#$*%&'+(,)-*+,.-./0124 !"#$%&'()*+,-.3"Derive an instance of some class. derive only derives instances  for the type of the argument. "Derive an instance of some class.  deriveFromDec only derives instances  for the type of the argument. 7 !"#$%&'()*+,-./89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                       ! " #!$"%"&#'$(%)&*'+(,)-*.+/,0-1.2/3/405162733839:56;<=56>56?56@56A56B56C56D56E56F56G56H56I56J56K56L56M56N56O56P56Q56R56S56T56U56V56W56X56Y56Z56[56\56]56^56_56`56a56b56c56d56e56f56g56h56i56j56k56l56m56n56o56p56q56r56Q56s56t56u56v56w56x56y5656z56{56|56}56~5656565656565656565656565656565656565656565656565656565656565656565656565656565656565656I56J56565656565656565656565656565656565656565656565656565656565656565656565656565656565656R56565656565656565656565656565656565656565656565656565656      !"#$%&'()*++,-.-/-0-1-2-3-4-5-6-7-7898:8;<=<><?<@<A<<<B<CDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD[D\D]D^D_D`DaDbDcDdDeDfDgDhDiDjDkDlDmDnopoqorosotouovowoxoyozo{o|o}o~oooooooooooooooooooooooooooooooooooooooQooooooooooyoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooIoIoooooooooooooooooooooooooooooooooooooooMoo oo o o o ooooRoRoooooooooooooooooo o!oo;o"oo#o$o%o&o'o(o)o*o+oo,o-o.o/o0o1o2o3o4o5o6o7o8o9o:o;o<o=o>o?o@oAoBoCoDoEoFoGoHoHoIoJoIoKoKoLoMoNoOoPoQoRoSoToUooooVoWoXoYoZo[o\o]o^o_o`oaobocodoeofogogohoiohojokolomonooopoqorosotouovowoxoyozo{o|o}o~oooooooLooooooooooooooooooooooooooooooooooooooooooooo       W [ \ ^     !"#$%&'()*+$,'-(.)/,01 derive-2.0.0Language.Haskell.TH.FixedPprLanguage.Haskell.TH.Data!Language.Haskell.TH.ExpandSynonymLanguage.Haskell.TH.HelperLanguage.Haskell.TH.PeepholeLanguage.Haskell.TH.AllLanguage.HaskellLanguage.Haskell.ConvertData.Derive.Internal.InstanceData.Derive.Class.DefaultData.Derive.Class.AritiesData.Derive.DSL.HSEData.Derive.DSL.DSLData.Derive.DSL.SYBData.Derive.DSL.ApplyData.Derive.DSL.DeriveData.DeriveDSLData.Derive.Internal.DerivationData.Derive.Internal.TraversalData.Derive.ArbitraryData.Derive.ArbitraryOldData.Derive.AritiesData.Derive.BinaryData.Derive.BinaryDeferData.Derive.BoundedData.Derive.DataData.Derive.DefaultData.Derive.EnumData.Derive.EnumCyclicData.Derive.EqData.Derive.FoldData.Derive.FoldableData.Derive.FromData.Derive.FunctorData.Derive.HasData.Derive.IsData.Derive.LazySetData.Derive.MonoidData.Derive.NFDataData.Derive.OrdData.Derive.PlateTypeableData.Derive.ReadData.Derive.RefData.Derive.SerialData.Derive.SetData.Derive.ShowData.Derive.TraversableData.Derive.TypeableData.Derive.UpdateData.Derive.All Data.DeriveTHLanguage.Haskell.TH.SYBtemplate-haskellLanguage.Haskell.TH.SyntaxData.Derive.Instance.AritiesPprpprppr_list Precedence nestDepthappPrecopPrecnoPrecparensIf showNameRaw isPrefixNamepprName_pprint pprFixity pprExpInfixpprExp pprFields pprMaybeExppprBodypprLitpprPatpprVarStrictType pprStrictType pprParendTypepprTyAppsplitpprCxt where_clause showtextlCtorDefDataDefdataNamequalifiedDataName dataAritydataArgs dataCtorsctorNamequalifiedCtorName ctorArityctorStrictTypes ctorTypes ctorFields dropModule dropNumbernormDataunqualifiedNametypeAppeqConTisTupleT expandDataLitClitValconlKvrraw_littuplstNameLiketoName applyWith foldl1With foldr1Withsclause defclausesvalcase'->: instance_noneinstance_defaultinstance_contextsimple_instancegeneric_instancesigNfunNappdataVarsvarsvrnctvctpctcl0l1l2truefalsenilhNil'hZero'consboxreturn'const'hSucc'==:&&:++:>>=:>>:.:>:ap'hCons'&&::++::>>::.:: sequence__liftmkpeephole replaceVars replaceVar DerivationderivationDeriverderivationName derivation derivationQ FullDataDecl FieldDeclCtorDeclDataDeclforallssimplify dataDeclTypedataDeclFieldsbindbinds isDataDecldataDeclSrcLoc dataDeclName dataDeclVars dataDeclArity dataDeclCtors ctorDeclName ctorDeclName'ctorDeclFields ctorDeclArityConvertconvert d_ctorArity d_ctorValue d_dataCtorsDefaultdefAritiesaritiesOutputOCustomOIgnoreOListOAppOIntOStringOutCtorInputsampleoutEq ctorIndextoInputtoOutput fromOutput fromStateDSL ApplicationInstanceTailHeadFold FieldIndex CtorArity CtorIndexCtorNameDataNameMapCtorMapFieldListIntShowIntStringReverseConcatAppfromOut simplifyDSL prettyTexdslSYBEnvenvInputenvCtorenvFieldenvFoldapplyapplyEnvderive deriveDSLapplyDSL dynamicDSL derivationOp derivationDSLderivationCustomDSL customSplice customContext TraveralType traversalArg traversalCo traversalName traversalIdtraversalDirect traversalFunc traversalPlus traverseArrow traverseTuple traverseCtor traverseFunctraversalDerivation1traversalInstance1traversalInstancederiveTraversal makeArbitrarymakeArbitraryOld makeArities makeBinarymakeBinaryDefer makeBoundedmakeDatasplicecontext makeDefaultmakeEnummakeEnumCyclicmakeEqmakeFold makeFoldable makeFoldableNmakeFrom makeFunctor makeFunctorNmakeHasmakeIs makeLazySet makeMonoid makeNFDatamakeOrdmakePlateTypeablemakeReadmakeRef makeSerialmakeSetmakeShowmakeTraversablemakeTraversableN makeTypeable makeUpdate derivationsderives deriveFromDecppr_sigLitunitid'returnQbindQ sequenceQliftnewNamemkName mkNameG_v mkNameG_d mkNameG_tcmkNameLExpMatchClauseQPatTypeDecFieldExpFieldPatNameFunDep defaultFixity maxPrecedence tupleTypeName tupleDataName showName'showNamemkNameU nameModulenameBase occString mkOccName pkgString mkPkgName modString mkModNamerunIOlocationreifyrecoverreportrunQqRunIO qLocationqReifyqRecoverqReportqNewNameQuasiLiftModNamePkgNameOccNameNameSNameQNameUNameLNameG NameFlavourVarName TcClsName NameSpaceUniqAloneAppliedInfixNameIsloc_end loc_start loc_module loc_package loc_filenameLocCharPosClassIClassOpITyConI PrimTyConIDataConIVarITyVarIInfoFixityInfixLInfixRInfixNFixityDirectionCharLStringLIntegerL RationalLIntPrimL WordPrimL FloatPrimL DoublePrimLLitPVarPTupPConPInfixPTildePAsPWildPRecPListPSigPVarEConELitEAppEInfixELamETupECondELetECaseEDoECompE ArithSeqEListESigERecConERecUpdEGuardedBNormalBBodyNormalGPatGGuardBindSLetSNoBindSParSStmtFromR FromThenRFromToR FromThenToRRangeFunDValDDataDNewtypeDTySynDClassD InstanceDSigDForeignDImportFExportFForeignCCallStdCallCallconvUnsafeSafe ThreadsafeSafetyCxtIsStrict NotStrictStrictNormalCRecCInfixCForallCCon StrictType VarStrictTypeForallTVarTConTTupleTArrowTListTAppTpretty-1.0.1.0Text.PrettyPrint.HughesPJMode OneLineModeLeftMode ZigZagModePageModeStylemode lineLengthribbonsPerLinestylehaskell-src-exts-1.1.1Language.Haskell.ExtsreadExtensionsparseFileContentsWithModeparseFileContentsparseFileWithModeparseFileWithExts parseFileLanguage.Haskell.Exts.Parser getTopPragmasparseTypeWithCommentsparseTypeWithMode parseTypeparseDeclWithCommentsparseDeclWithMode parseDeclparsePatWithCommentsparsePatWithModeparsePatparseExpWithCommentsparseExpWithModeparseExpparseModuleWithCommentsparseModuleWithMode parseModuleparseWithComments parseWithModeparse ParseableLanguage.Haskell.Exts.Pretty prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultMode PPOffsideRule PPSemiColonPPInLine PPNoLayoutPPLayoutIndent linePragmaslayoutspacing onsideIndent whereIndent letIndent caseIndentdoIndent classIndentPPHsModePretty Language.Haskell.Exts.ParseMonaddefaultParseModefromParseResultParseOk ParseFailed ParseResultfixitiesignoreLanguagePragmas extensions parseFilename ParseModeLanguage.Haskell.Exts.Comments SingleLine MultiLineCommentLanguage.Haskell.Exts.Fixityinfix_infixl_infixr_ baseFixitiespreludeFixities 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 ccall_name stdcall_namethreadsafe_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 srcColumnsrcLine srcFilenameSrcLoc ModuleNameUnitConListConFunConTupleConConsUnboxedSingleCon SpecialConQualUnQualSpecialQNameIdentSymbolIPDupIPLinIPNameQVarOpQConOpQOpVarOpConOpOpConNameCNameModuleEVarEAbs EThingAll EThingWithEModuleContents ExportSpec importSpecsimportAs importPkg importSrcimportQualified importModule importLoc ImportDeclIVarIAbs IThingAll IThingWith ImportSpec AssocNone AssocLeft AssocRightAssocDerivingTypeDecl TypeFamDecl GDataDecl DataFamDecl TypeInsDecl DataInsDecl GDataInsDecl ClassDeclInstDecl DerivDecl InfixDecl DefaultDecl SpliceDeclTypeSigFunBindPatBindForImpForExpRulePragmaDeclDeprPragmaDeclWarnPragmaDecl InlineSigSpecSig SpecInlineSigInstSigDeclDataTypeNewType DataOrNewBDeclsIPBindsBindsIPBind QualConDeclConDecl InfixConDeclRecDeclGadtDeclClsDecl ClsDataFamClsTyFamClsTyDefInsDeclInsTypeInsDataInsGData InsInlineBangedTy UnBangedTy UnpackedTyBangType UnGuardedRhs GuardedRhssRhs GuardedRhsTyForallTyFunTyTupleTyListTyAppTyVarTyConTyParenTyInfixTyKindBoxedUnboxed KindedVar UnkindedVar TyVarBindKindStarKindBangKindFnKindContextClassAInfixAIParamEqualPAsstCharFracPrimIntPrimWord PrimFloat PrimDoublePrimChar PrimStringLiteralVarIPVarInfixAppNegAppLambdaLetIfCaseDoMDoTuple TupleSectionParen LeftSection RightSection RecConstr RecUpdateEnumFrom EnumFromTo EnumFromThenEnumFromThenToListCompParComp ExpTypeSigVarQuoteTypQuote BracketExp SpliceExp QuasiQuoteXTagXETagXPcdataXExpTag CorePragma SCCPragma GenPragmaProc LeftArrApp RightArrAppLeftArrHighAppRightArrHighAppXNameXDomNameXAttr ExpBracket PatBracket TypeBracket DeclBracketBracketIdSplice ParenSpliceSplice PlayRiskyPlaySafeCallConvLanguagePragma IncludePragma CFilesPragma OptionsPragma OptionPragmaGHCHUGSNHC98YHCHADDOCK UnknownToolTool AlwaysActive ActiveFrom ActiveUntil ActivationRuleRuleVar TypedRuleVarDeprTextWarnText WarningTextPVarPLitPNegPNPlusK PInfixAppPAppPTuplePListPParenPRecPAsPat PWildCardPIrrPat PatTypeSigPViewPatPRPatPXTagPXETagPXPcdataPXPatTagPXRPats PExplTypeArg PQuasiQuotePBangPatPXAttrRPStarRPStarGRPPlusRPPlusGRPOptRPOptGRPatOpRPOpRPEitherRPSeqRPGuardRPCAsRPAsRPParenRPPatRPat PFieldPat PFieldPunPFieldWildcardPatField Generator QualifierLetStmtRecStmtQualStmt ThenTransThenByGroupBy GroupUsing GroupByUsing FieldUpdateFieldPun FieldWildcardAlt UnGuardedAlt GuardedAlts GuardedAltLanguage.Haskell.Exts.ExtensionclassifyExtension glasgowExts impliesExtsOverlappingInstancesUndecidableInstancesIncoherentInstances RecursiveDoParallelListCompMultiParamTypeClassesNoMonomorphismRestrictionFunctionalDependenciesExplicitForall Rank2Types RankNTypesPolymorphicComponentsExistentialQuantificationScopedTypeVariablesImplicitParamsFlexibleContextsFlexibleInstancesEmptyDataDeclsCPPKindSignatures BangPatternsTypeSynonymInstancesTemplateHaskellForeignFunctionInterfaceArrowsGenericsNoImplicitPreludeNamedFieldPuns PatternGuardsGeneralizedNewtypeDerivingExtensibleRecordsRestrictedTypeSynonyms HereDocuments MagicHash TypeFamiliesStandaloneDeriving UnicodeSyntaxPatternSignaturesUnliftedFFITypesLiberalTypeSynonyms TypeOperatorsRecordWildCards RecordPunsDisambiguateRecordFieldsOverloadedStringsGADTs MonoPatBindsNoMonoPatBindsRelaxedPolyRecExtendedDefaultRules UnboxedTuplesDeriveDataTypeableConstrainedClassMethodsPackageImportsImpredicativeTypesNewQualifiedOperatorsPostfixOperators QuasiQuotesTransformListComp ViewPatterns XmlSyntaxRegularPatterns TupleSectionsUnknownExtension Extension?tyAppsisTyFun~=appP isGuardFalserenameisAtomparenslnoSltitleqnamevarcontyVar tyVarBindtyConpVarqvop moduleName moduleDecls moduleImports modulePragmas showDecls unParseOktyApptyFunapps fromBangTypebase Data.DataDatashowOutcoercereadConoutappendenv ArgPositions WithInstancesrequiredDataArgrequiredPositionTravderiveTraversalCtorderiveTraversalTypederiveTraversalApp traverseArg argPositionsdefaultTraversalTypedslArbitraryOld dslArities dslBinarydslBinaryDefer dslBoundedcustom dslDefaultdslEnum dslEnumCyclicdslEqdslIs dslNFDatadslOrddslPlateTypeable dslSerial