!J#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP Q R S T U V W X Y Z [ \ ] ^ _ ` a bcdefghijklmnopqrstuvwxyz{| } ~!!""##$%&''''''(((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + + ++++++++++,,,------ .!.".6SafeC SafeCS/SafeEXC#$%&Safe=?XDNoneDN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNMPORQUTSWVXYZ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[     "! #/.-,+*)('&%$0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_a`ihgfedcbmlkjpnosrqvutyxw|{z~}     2)10/.-,+*('&%$#"! 543<;:9876?>=BA@JIHGFEDCLKPONMXWVUTSRQc`ba_^]\[ZYfed~}|{zyxwvutsrqponmlkjihg      !"#$%&'()*/.-,+6543210:987>=<;EDCBA@?FGHIJKLMNOPQVUTSRZYXWuon{m[^zyxdjktrqse\c|lwvpi]ba`_~}hgf          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNMPORQUTSWVXYZ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[     "! #/.-,+*)('&%$0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_a`ihgfedcbmlkjpnosrqvutyxw|{z~}     2)10/.-,+*('&%$#"! 543<;:9876?>=BA@JIHGFEDCLKPONMXWVUTSRQc`ba_^]\[ZYfed~}|{zyxwvutsrqponmlkjihg      !"#$%&'()*/.-,+6543210:987>=<;EDCBA@?FGHIJKLMNOPQVUTSRZYXWuon{m[^zyxdjktrqse\c|lwvpi]ba`_~}hgf10Noned'()*+,-./012345None2eZ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNMPORQUTSWVXYZ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[     "! #/.-,+*)('&%$0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_a`ihgfedcbmlkjpnosrqvutyxw|{z~}     2)10/.-,+*('&%$#"! 543<;:9876?>=BA@JIHGFEDCLKPONMXWVUTSRQcb_^]\[ZYfed~}|{zyxwvutsrqponmlkjihg      !"#$%&'()*/.-,+6543210:987>=<;EDCBA@?FGHIJKLMNOPQVUTSRZYXWuon{m[^zyxdjktrqse\c|lwvpi]ba`_~}hgf      !"#$%&  !"#$%&  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNMPORQUTSWVXYZ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[     "! #/.-,+*)('&%$0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_a`ihgfedcbmlkjpnosrqvutyxw|{z~}     2)10/.-,+*('&%$#"! 543<;:9876?>=BA@JIHGFEDCLKPONMXWVUTSRQcb_^]\[ZYfed~}|{zyxwvutsrqponmlkjihg      !"#$%&'()*/.-,+6543210:987>=<;EDCBA@?FGHIJKLMNOPQVUTSRZYXWuon{m[^zyxdjktrqse\c|lwvpi]ba`_~}hgf    1None6789:;<=>?@ABCDEFGHIJKNone2*=;:876532/,<9-41+.0>?@ABC*=;:876532/,<9-41+.0>?@ABCNoneSX=FFNone% GHIJKLMNO MONGHIJKL NonePP None?*RST*RST2NoneL None UVWXYZ[\]^ UVWXYZ[\]^3None%^MNO None__ None`a`aNone%bbNoneceeNonefgfgNonehihiNone-jjNonekklklNonemmNonennNone-oo(c) Bertram Felgenhauer 2009BSD3 experimentalportableNonepderiveU for JSONppNoneqq4NoneaPderive!Information on argument positionsQderive&Monad that collects required instancesRderive'What argument of the current data type?Sderive$What argument position of that type?Tderive'What kind of traversal are we deriving?Uderive#On what position are we traversing?Vderive covariant?Wderivename of the traversal functionXderiveIdentity traversalYderive Traversal of aZderive Apply the sub-traversal function[derive-Apply two non-identity traversals in sequence\deriveTraverse a function type]derive)Construct a tuple from applied traversals^derive-Construct a data type from applied traversals_derive,Construct a clause of the traversal function`derive?An expression representing a traversal of a subpart of the dataaderive:Derivation for a Traversable like class with just 1 methodbderive8Instance for a Traversable like class with just 1 methodcderive%Instance for a Traversable like classdderive Derive a e like functionfderiveDerive a clause of a e like function for a constructorgderiveDerive a traversal for a typehderiveAFind all arguments to a type application, then derive a traversaliderive6Lift a traversal to the argument of a type constructorjderivepPosition of an argument in the data type In the type "data X a b c" positions are: a -> 3, b -> 2, c -> 1TkUVWXYZ[\]^_labcdNonerrNonessNone\ttNoneuvuvNonewxwxNone&yyNonedz{z{ None|}|}!None~~"None6#None|$None%None&U_`abefghijklmnopqrstuvwxyz{|}~U5Nonem6None&NoneL'Safe(None%=?@AX8)None*None&derive*Expand type synonyms in a data declaration+None=?xderiveVThis class is used to overload literal construction based on the type of the literal.deriveThe 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.deriveTBuild an application node, with a name for a head and a provided list of arguments.deriveReference a named variable.derive Lift a TH nderiveTuplingderiveListingderive)A simple clause, without where or guards.derive"A default clause with N arguments.deriveA simple Val clausederiveWe provide 3 standard instance constructors instance_default requires C for each free type variable instance_none requires no context instance_context requires a given contextderivezBuild an instance of a class for a data type, using the heuristic that the type is itself required on all type arguments.derivePBuild an instance of a class for a data type, using the class at the given typesderive5Build a type signature declaration with a string namederive"Build a fundecl with a string namederive.Build an application node without a given headderive.Common pattern: list of a familiy of variablesderive#Variable based on a letter + numberderive@Make a list of variables, one for each argument to a constructorderive+Make a simple pattern to bind a constructorderive Reference the constructor itselfderiveBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)deriveBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically)deriveBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically) deriveBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically) deriveBuild a chain of expressions, with an appropriate terminal sequence__ does not require a unit at the end (all others are optimised automatically) derive K-way liftM>   >   ,NoneО-None^deriveKThe type of ways to derive classes. Should not really be in this module!deriveThe derivation function properderiveThe name of the derivationpopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   .None derive"Derive an instance of some class. derive6 only derives instances for the type of the argument."derive"Derive an instance of some class.  deriveFromDec6 only derives instances for the type of the argument.)U_`abefghijklmnopqrstuvwxyz{|}~ !" !"78978:78;78<78=78>78?78@78A78B7CD7CE7CF7CG7CH7CI7CJ7CK7CL7CM7CN7CO7CP7CQ7CR7CS7CT7CU7CV7CW7CX7CY7CZ7C[7C\7C]7C^7C_7C`7Ca7Cb7Cc7Cd7Ce7Cf7Cg7Ch7Ci7Cj7Ck7Cl7Cm7no7np7qr7qs7qt7qu7qv7qw7qx7qy7qz7q{7q|7q}7q~7q7q7q7q7q7q7q7q7q7q7q7q7q7q7q7q7q7q7q7q7q7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7 7 7 7 7777777777777777777 7!7"7#7$7%7&7'7(7)7*7+7,7-7.7/7071271371471571671771871971:71;71<71=71>71?71@71A71B71B7CD7CE7CE7CF7CF7GH7GI7GJ7GK7GL7GM7GM7GN7GO7PQ7PR7PS7PT7PU7PV7PW7PX7PY7PZ7P[7P\7P]7P^7P_7P`7Pa7Pb7Pc7Pd7Pe7Pf7Pg7Pg7Ph7ij7ik7il7im7in7io7ip7iq7ir7is7it7iu7iv7iw7ix7iy7iz7i{7i|7i}7i~7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i 7i 7i 7i 7i 7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i 7i!7i"7i"7i#7i$7i%7i&7i'7i(7i)7i*7i*7i+7i,7i,7i-7i-7i.7i/7i07i07i17i17i27i37i47i57i67i7i77i87i97i:7i7i;7i<7i=7i>7i?7i@7iA7iB7iC7iD7iE7iF7iF7iG7iH7iI7iJ7iK7iL7iM7iN7iO7iP7iQ7iR7iS7iT7iU7iV7iW7iX7iY7iZ7i[7i\7i]7i^7i_7i`7ia7ib7ic7id7ie7ie7if7ig7ih7ii7ij7ik7il7im7in7io7ip7iq7iq7ir7is7it7iu7iv7iw7ix7iy7iz7i{7i|7i}7i~7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i 7i 7i 7i 7i 7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i7i 7i!7i"7i#7i$7i%7i&7i'7i(7i)7i*7i+7i,7i-7i.7i.7i/7i07i17i17i27i27i37i47i576776876976:76;76<76=76>76?76@76A76B76C76D76E76F76G76H76I76J76K76K76L76M76N76O76P76Q76Q76R76S76T76T76U76V76W76W76X76Y76Z76[76\76]76^7_`7_a7_b7_c7_d7_e7_f7_g7_h7_i7_j7_k7_l7_m7_n7_o7_p7_q7_r7_s7_t7_u7_v7_w7_x7_y7_z7_{7_|7_}7_~7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_7_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]]^_`abcd e f g h i j j k l m n o p q r s t uvwxyz{|}~  !!""##$%6''''''(((((((((((((((((((((((((((((((((((((((((((()))4))))6)7))8))))))))))*+++++++++++++++++++++++++++5+++++++++++U++++++T+++ + + + + +++++++++++++++++++ +!+"+#,$,%,&-j-j-'-k-(-).e.*.+,-.///0/10203040506070'08090:0;0<0=0>0?1@1A161B1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S2T3U3V3W4X4Y4Z4[4\4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l,mn4o4p4q4r4s4\4t5uvwvwxvwyvwzvw{vw|vw}vw~vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvw,vw,vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwYvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwqvwqvwvwvwvwvwvwvwvwvwvwvwtux~v}w|{zy          vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvw vw!vw"vw#vw$vw%vw&vw'vw(vw)vw*vw+vw,vw-vw.vw/vw0vw1vw2vw3vw4vw5vw6vw7vw8vw9vw:vw;vw<vw=vw>vw?vw@vwAvwBvwCvwDvwEvwFvwGvwHvwIvwJvwKvwLvwMvwNvwOvwPvwQvwRvwSvwTvwUvwVvwWvwXvwYvwZvw[vw\vw]vw^vw_vw`vwavwbvwcvwdvwevwfvwgvwhvwivwjvwkvwlvwlvwmvwmvwvwvwnvwnvwovwpvwqvwrvwsvwtvwuvwvwJvwvvwwvwxvwyvwzvw{vwTvwTvw|vw}vw~vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwMvwMvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvw(vwvwvwvwvwvwvwvwvwvwvwvw&vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvw@vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvw>vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvw vwvwvwvwvwvwvwvwp#derive-2.6.5-CYXxo0b6USv5pfCsCLGU64Language.HaskellData.Derive.Class.AritiesData.Derive.Class.DefaultData.Derive.Instance.AritiesData.Derive.DSL.HSEData.Derive.DSL.DSLData.Derive.DSL.SYBData.Derive.DSL.ApplyData.Derive.DSL.DeriveData.DeriveDSLData.Derive.Internal.DerivationData.Derive.UpdateData.Derive.UniplateTypeableData.Derive.UniplateDirectData.Derive.SetData.Derive.SerializeData.Derive.SerialData.Derive.RefData.Derive.NFDataData.Derive.MonoidData.Derive.LensData.Derive.LazySetData.Derive.JSONData.Derive.IsData.Derive.HasData.Derive.FromData.Derive.FoldData.Derive.EnumCyclicData.Derive.DefaultData.Derive.DataAbstractData.Derive.BoundedData.Derive.BinaryDeferData.Derive.BinaryData.Derive.AritiesData.Derive.ArbitraryOldData.Derive.ArbitraryData.Derive.AllData.DeriveMainLanguage.Haskell.TH.CompatLanguage.Haskell.ConvertLanguage.Haskell.TH.Data!Language.Haskell.TH.ExpandSynonymLanguage.Haskell.TH.HelperLanguage.Haskell.TH.PeepholeLanguage.Haskell.TH.All Data.DeriveTHData.Derive.Internal.Instance Derive.Flags Derive.UtilsDerive.GenerateDerive.DerivationData.Derive.Internal.Traversal Derive.Test Derive.Main-haskell-src-exts-1.20.3-2fryh11Yuz7lCtLeeIQn8Language.Haskell.ExtsreadExtensionsparseFileContentsWithCommentsparseFileContentsWithModeparseFileContentsWithExtsparseFileContentsparseFileWithCommentsAndPragmasparseFileWithCommentsparseFileWithModeparseFileWithExts parseFileLanguage.Haskell.Exts.Build metaConPat metaFunctionnameBind patBindWherepatBind simpleFunsfungenNameswildcardnoBindsletStmtgenStmtqualStmtpParenpeListeListlistEaltGWaltcaseEletElamEdoEintPcharPstrPintEcharEstrEfunction pvarTuplevarTuplepTupletuplepAppappFuninfixApppvarqvaropsymname Language.Haskell.Exts.ExactPrint exactPrintExactPLanguage.Haskell.Exts.ParserunListOf getTopPragmasparseImportDeclWithCommentsparseImportDeclWithModeparseImportDeclparseStmtWithCommentsparseStmtWithMode parseStmtparseTypeWithCommentsparseTypeWithMode parseTypeparseDeclWithCommentsparseDeclWithMode parseDeclparsePatWithCommentsparsePatWithModeparsePatparseExpWithCommentsparseExpWithModeparseExpparseModuleWithCommentsparseModuleWithMode parseModulePragmasAndModuleNamePragmasAndModuleHeadModuleHeadAndImports unNonGreedy NonGreedyListOfLanguage.Haskell.Exts.LexerlexTokenStreamWithModelexTokenStream#Language.Haskell.Exts.InternalLexerEOFKW_CApi KW_JavaScriptKW_JsKW_Jvm KW_DotNet KW_CPlusPlusKW_CCall KW_StdCallKW_Interruptible KW_Threadsafe KW_UnsafeKW_Safe KW_Export KW_Foreign KW_AnyclassKW_Stock 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_AsCOMPLETE INCOHERENTOVERLAPS OVERLAPPABLE OVERLAPPINGOVERLAP NO_OVERLAPMINIMALANNLANGUAGEOPTIONSNOUNPACKUNPACKCORE 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 DoubleArrowTildeTAppAt 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 IDupVarIdQVarId LabelVarIdVarIdToken Language.Haskell.Exts.ParseMonaddefaultParseModefromParseResultparseWithComments parseWithModeparse Parseable ParseFailedParseOk ParseResultignoreFunctionArityfixitiesignoreLinePragmasignoreLanguagePragmas extensions baseLanguage parseFilename ParseModeLanguage.Haskell.Exts.CommentsassociateHaddockComment UnknownPragmaLanguage.Haskell.Exts.Fixityinfix_infixl_infixr_ baseFixitiespreludeFixitiesFixity applyFixities AppFixityLanguage.Haskell.Exts.PrettyprettyPrimWithMode prettyPrim prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultMode PPNoLayoutPPInLine PPSemiColon PPOffsideRulePPLayoutIndent linePragmaslayoutspacing onsideIndent whereIndent letIndent caseIndent multiIfIndentdoIndent classIndentPPHsModePrettyLanguage.Haskell.Exts.Syntax=~= tuple_tyconunboxed_singleton_tycon list_tycon fun_tycon unit_tycontuple_tycon_nameunboxed_singleton_tycon_namelist_tycon_namefun_tycon_nameunit_tycon_name anyclass_name stock_name role_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 hole_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 ModuleNameExprHoleUnboxedSingleConConsTupleConFunConListConUnitCon SpecialConSpecialUnQualQualQNameSymbolIdentNameIPLinIPDupIPNameQConOpQVarOpQOpConOpVarOpOpConNameVarNameCName XmlHybridXmlPageModule ModuleHeadExportSpecListEModuleContents EThingWithEAbsEVar ExportSpec EWildcard NoWildcardPatternNamespace TypeNamespace NoNamespace Namespace importSpecsimportAs importPkg importSafe importSrcimportQualified importModule importAnn ImportDeclImportSpecList IThingWith IThingAllIAbsIVar ImportSpec AssocRight AssocLeft AssocNoneAssocCompletePragma RoleAnnotDecl MinimalPragma AnnPragmaInstSig SpecInlineSigSpecSigInlineConlikeSig InlineSigWarnPragmaDeclDeprPragmaDeclRulePragmaDeclForExpForImpPatSynPatBindFunBind PatSynSigTypeSig SpliceDecl DefaultDecl InfixDecl DerivDeclInstDecl ClassDecl GDataInsDecl DataInsDecl TypeInsDecl DataFamDecl GDataDeclDataDeclClosedTypeFamDecl TypeFamDeclTypeDeclDeclExplicitBidirectionalImplicitBidirectionalUnidirectionalPatternSynDirectionTypeEqn ModuleAnnTypeAnnAnn Annotation ParenFormula OrFormula AndFormula VarFormulaBooleanFormula RoleWildcardPhantomRepresentationalNominalRoleNewTypeDataType DataOrNewInjectivityInfoTyVarSigKindSig ResultSigDHAppDHParenDHInfixDHeadDeclHeadIParenIRuleInstRuleIHAppIHParenIHInfixIHConInstHeadDeriving DerivNewtype DerivAnyclass DerivStock DerivStrategyIPBindsBDeclsBindsIPBind InfixMatchMatch QualConDeclRecDecl InfixConDeclConDeclGadtDecl ClsDefSigClsTyDefClsTyFam ClsDataFamClsDeclInsGDataInsDataInsTypeInsDecl NoStrictAnnotLazyTyBangedTyBangTypeNoUnpackPragmaNoUnpackUnpack Unpackedness GuardedRhss UnGuardedRhsRhs GuardedRhs TyQuasiQuote TyWildCardTyBangTySpliceTyEquals TyPromotedTyKindTyInfixTyParenTyConTyVarTyApp TyParArrayTyList TyUnboxedSumTyTupleTyFunTyForallTypeUnpromotedName PromotedNameMaybePromotedName PromotedUnit PromotedTuple PromotedList PromotedConPromotedStringPromotedIntegerPromotedUnboxedBoxed UnkindedVar KindedVar TyVarBindKindList KindTupleKindAppKindVar KindParenKindFnKindStarKindFunDepCxEmptyCxTupleCxSingleContext WildCardAParenAEqualPIParamInfixAAppAClassAAsst PrimStringPrimChar PrimDouble PrimFloatPrimWordPrimIntFracIntStringCharLiteralNegativeSignlessSignLCaseRightArrHighAppLeftArrHighApp RightArrApp LeftArrAppProc GenPragma SCCPragma CorePragma XChildTagXExpTagXPcdataXETagXTagTypeApp QuasiQuote SpliceExp BracketExpTypQuoteVarQuote ExpTypeSig ParArrayCompParCompListCompParArrayFromThenToParArrayFromToEnumFromThenTo EnumFromThen EnumFromToEnumFrom RecUpdate RecConstr RightSection LeftSectionParenParArrayList TupleSection UnboxedSumTupleMDoDoCaseMultiIfIfLetLambdaNegAppAppInfixAppLitConIPVarOverloadedLabelVarExpXDomNameXNameXAttr DeclBracket TypeBracket PatBracket ExpBracketBracket ParenSpliceIdSpliceSplicePlayInterruptiblePlaySafe PlayRiskySafetyCApi JavaScriptJsJvmDotNet CPlusPlusCCallStdCallCallConvAnnModulePragma OptionsPragmaLanguagePragma ModulePragma UnknownToolHADDOCKYHCNHC98HUGSGHCTool Incoherent OverlappableOverlaps OverlappingOverlap NoOverlap ActiveUntil ActiveFrom ActivationRule TypedRuleVarRuleVarWarnTextDeprText WarningTextPBangPat PQuasiQuotePSplicePXRPatsPXPatTagPXPcdataPXETagPXTagPRPatPViewPat PatTypeSigPIrrPat PWildCardPAsPatPRecPParenPList PUnboxedSumPTuplePApp PInfixAppPNPlusKPLitPVarPatPXAttrRPOptGRPOptRPPlusGRPPlusRPStarGRPStarRPatOpRPPatRPParenRPAsRPCAsRPGuardRPSeqRPEitherRPOpRPatPFieldWildcard PFieldPun PFieldPatPatFieldRecStmtLetStmt Qualifier GeneratorStmt GroupByUsing GroupUsingGroupByThenBy ThenTransQualStmt FieldWildcardFieldPun FieldUpdateAltamapann AnnotatedLanguage.Haskell.Exts.SrcLoc<^^><**<+?><++> combSpanMaybe combSpanInfoinfoSpan noSrcSpan noInfoSpanspanSize isNullSpan mergeSrcSpan mkSrcSpan srcSpanEnd srcSpanStartnoLoc srcColumnsrcLine srcFilenameSrcLocsrcSpanEndColumnsrcSpanEndLinesrcSpanStartColumnsrcSpanStartLinesrcSpanFilenameSrcSpanunLoclocLoc srcInfoPoints srcInfoSpan SrcSpanInfo startColumn startLinefileName getPointLoc fromSrcInfo toSrcInfoSrcInfoLanguage.Haskell.Exts.ExtensiontoExtensionListprettyExtensionparseExtensionclassifyExtensiondeprecatedExtensionsknownExtensions ghcDefault glasgowExts impliesExtsprettyLanguageclassifyLanguageknownLanguagesUnknownLanguageHaskellAllDisabled Haskell2010 Haskell98LanguageUnknownExtensionDisableExtensionEnableExtension Extension UnboxedSumsDerivingStrategiesOverloadedLabelsTypeFamilyDependenciesTypeApplicationsNamedWildCardsPartialTypeSignaturesPatternSynonymsRoleAnnotationsConstraintKindsDefaultSignatures TrustworthySafe SafeImports MultiWayIf PolyKinds DataKindsExplicitNamespaces JavaScriptFFICApiFFIInterruptibleFFINondecreasingIndentationDeriveFoldableDeriveTraversable DeriveGeneric DeriveFunctorMonoLocalBindsDatatypeContextsExplicitForAllRebindableSyntaxDoAndIfThenElseNPlusKPatternsGHCForeignImportPrim TupleSectionsRegularPatterns XmlSyntax ViewPatternsTransformListComp QuasiQuotesPostfixOperatorsNewQualifiedOperatorsImpredicativeTypes EmptyCase LambdaCasePackageImportsConstrainedClassMethodsDeriveDataTypeable UnboxedTuplesExtendedDefaultRulesRelaxedPolyRec MonoPatBindsGADTsOverloadedStringsDisambiguateRecordFields RecordPunsRecordWildCardsParallelArrays TypeOperatorsLiberalTypeSynonymsUnliftedFFITypes UnicodeSyntaxStandaloneDeriving TypeFamiliesBinaryLiterals MagicHash HereDocumentsRestrictedTypeSynonymsExtensibleRecordsDeriveAnyClassGeneralizedNewtypeDeriving PatternGuardsNamedFieldPunsImplicitPreludeGenericsArrowsForeignFunctionInterfaceTemplateHaskellTypeSynonymInstances BangPatternsKindSignaturesCPPEmptyDataDeclsFlexibleInstancesFlexibleContextsImplicitParamsPatternSignaturesScopedTypeVariablesExistentialQuantificationPolymorphicComponents RankNTypes Rank2TypesFunctionalDependenciesMonomorphismRestrictionMultiParamTypeClassesParallelListComp RecursiveDoDoRec InstanceSigsIncoherentInstancesUndecidableInstancesOverlappingInstancesKnownExtensionpretty-1.1.3.6#Text.PrettyPrint.Annotated.HughesPJModePageMode ZigZagModeLeftMode OneLineModeStylemode lineLengthribbonsPerLinestyleAritiesaritiesDefaultdef$fAritiesd_type FullDataDecl FieldDeclCtorDecl?forallstyApps fromTyApps fromTyTuple fromTyParen fromTyParenstyRootisTyFun isTyParen fromTyList~=appPsimplify isGuardFalserenameisAtomparenslnoSlisIdenttitleqnamevarcontyVar tyVarBindtyConpVarqvop dataDeclTypedataDeclFields moduleName moduleDecls moduleImports modulePragmas showDeclstyApptyFunappsbindbinds isDataDecl dataDeclName fromDeclHead fromIParen fromInstHead dataDeclVarsdataDeclVarsStar dataDeclArity dataDeclCtors ctorDeclName ctorDeclName'ctorDeclFields ctorDeclAritydeclNameOutputOStringOIntOAppOListOIgnoreOCustomOutCtorInputsampleoutEqshowOutdataNamedataVars dataCtorsctorName ctorArity ctorIndextoInputtoOutput fromOutputcoercereadConout fromState $fEqOutput $fShowOutput $fDataOutputDSLConcatReverseShowIntMapFieldMapCtorDataNameCtorName CtorIndex CtorArity FieldIndexFoldHeadTailInstance ApplicationboxnilappendfromOut simplifyDSL prettyTex $fDataDSL $fShowDSLdslSYBEnvenvInputenvCtorenvFieldenvFoldapplyenvapplyEnvderive $fShowGuess deriveDSLapplyDSL dynamicDSL DerivationderivationName derivationOpderivationParamsderivationCustom derivationDSLderivationCustomDSL customSplice customContext makeUpdatemakeUniplateTypeablecustommakeUniplateDirect $fShowAns$fEqAnsmakeSet makeSerialize dslSerialize makeSerial dslSerialmakeRef makeNFData dslNFData makeMonoidmakeLens makeLazySetmakeJSONmakeIsmakeHasmakeFrommakeFoldmakeEnumCyclic dslEnumCyclic makeDefault dslDefaultmakeDataAbstract makeBounded dslBoundedmakeBinaryDeferdslBinaryDefer makeBinary dslBinary makeArities dslAritiesmakeArbitraryOlddslArbitraryOld makeArbitrary derivations deriveMain fromTyVar instanceDdataDefinitionTypeArgsfrom_deriv_clausefrom_cxt typeToPredConvertconvert$fConvertKindType$fConvertTyVarBindTyVarBndr$fConvertTypeKind$fConvertTyVarBndrTyVarBind$fConvertTyVarBindName$fConvertFieldUpdate(,)$fConvertQualStmtStmt$fConvertStmtStmt$fConvertAltMatch$fConvertQOpExp$fConvertPatField(,)$fConvertQNameName$fConvertLiteralLit$fConvertPatPat$fConvertMaybe[]$fConvertBinds[]$fConvert[]Guard$fConvertGuardedRhs(,)$fConvertExpExp$fConvertRhsBody$fConvertMatchClause$fConvertNameName$fConvertTypeType$fConvertAsstType$fConvert(,)[]$fConvertType(,)$fConvertFieldDecl[]$fConvertConDeclCon$fConvertQualConDeclCon$fConvertDeclDec$fConvertTypeAsst$fConvertTypeType0$fConvert(,)Type$fConvertConConDecl$fConvertConQualConDecl$fConvertNameQName$fConvertNameName0$fConvertNameTyVarBind$fConvertMaybe[]0$fConvert[]Context$fConvertDecDecl $fConvert[][]CtorDefDataDefqualifiedDataName dataAritydataArgsqualifiedCtorNamectorStrictTypes ctorTypes ctorFields dropModule dropNumbernormDataunqualifiedNametypeAppeqConTisTupleT expandDataLitClitValconlKvrraw_littuplstNameLiketoName applyWith foldl1With foldr1Withsclause defclausesvalcase'->: instance_noneinstance_defaultinstance_contextsimple_instancegeneric_instancesigNfunNappvarsvrnctvctpctcl0l1l2truefalseunithNil'hZero'id'consreturn'const'hSucc'==:&&:++:>>=:>>:.:>:ap'hCons'&&::++::>>::.:: sequence__liftmk $fNameLike[]$fNameLikeName $fValconType $fValconPat $fValconExp$fLitC() $fLitC(,,) $fLitC(,)$fLitC[] $fLitCChar $fLitCIntegerpeephole replaceVars replaceVarderivationDeriver derivation derivationQderives deriveFromDecbase Data.DataData d_ctorArity d_ctorValue d_dataCtorsFlagVersionDeriveGenerateTestHelpImportModuAppendNoOpts PreprocessorflagInfogetFlagsaddFlagsPragmaExampleSrc srcCustomsrcTest srcExample srcImportsrcName srcImportStdnullSrcreadHSEasPragmareadSrcgeneratedStart generatedStopwriteGenerated readFile'writeBinaryFilereprepsgenerate wantDerive performDerive writeDerive ArgPositions WithInstances_requiredDataArg_requiredPosition TraveralType traversalArg traversalCo traversalName traversalIdtraversalDirect traversalFunc traversalPlus traverseArrow traverseTuple traverseCtor traverseFuncTravtraversalDerivation1traversalInstance1traversalInstancederiveTraversalData.TraversabletraversederiveTraversalCtorderiveTraversalTypederiveTraversalApp traverseArg argPositionsdefaultTraversalTypetesttemplate-haskellLanguage.Haskell.TH.SyntaxreturnQbindQ sequenceQnewNamemkName mkNameG_v mkNameG_d mkNameG_tcmkNameLmkNameSunTypeQunsafeTExpCoerce liftStringLiftliftVarEConELitEAppEAppTypeEInfixEUInfixEParensELamELamCaseETupE UnboxedTupE UnboxedSumECondEMultiIfELetECaseEDoECompE ArithSeqEListESigERecConERecUpdEStaticE UnboundVarELabelEClauseQunQLitPVarPTupP UnboxedTupP UnboxedSumPConPInfixPUInfixPParensPTildePBangPAsPWildPRecPListPSigPViewPListTForallTAppTSigTVarTConT PromotedTInfixTUInfixTParensTTupleT UnboxedTupleT UnboxedSumTArrowT EqualityTPromotedTupleT PromotedNilT PromotedConsTStarT ConstraintTLitT WildCardTDecFunDValDDataDNewtypeDTySynDClassD InstanceDSigDForeignDInfixDPragmaD DataFamilyD DataInstD NewtypeInstD TySynInstDOpenTypeFamilyDClosedTypeFamilyD RoleAnnotDStandaloneDerivD DefaultSigDPatSynD PatSynSigDFieldExpFieldPatPredTExpunTypeInjectivityAnnghc-boot-th-8.6.3GHC.LanguageExtensions.TypeStrictCppUndecidableSuperClassesTemplateHaskellQuotesAllowAmbiguousTypes TypeInTypeOverloadedLists NumDecimals GADTSyntaxBlockArguments ApplicativeDoAutoDeriveTypeable DeriveLift DerivingViaNullaryTypeClassesMonadComprehensionsAlternativeLayoutRule!AlternativeLayoutRuleTransitional RelaxedLayoutTraditionalRecordSyntaxNegativeLiteralsHexFloatLiteralsDuplicateRecordFieldsStaticPointers StrictDataMonadFailDesugaringEmptyDataDerivingNumericUnderscoresQuantifiedConstraints StarIsTypeGHC.ForeignSrcLang.TypeForeignSrcLangLangCLangCxxLangObjc LangObjcxx RawObjectthenCmpcmpEq defaultFixity maxPrecedenceunboxedSumTypeNameunboxedSumDataNamemk_unboxed_tup_nameunboxedTupleTypeNameunboxedTupleDataName mk_tup_name tupleTypeName tupleDataName showName'showNamemkNameGmkNameU nameSpace namePackage nameModulenameBase occString mkOccName pkgString mkPkgName modString mkModName dataToPatQliftData dataToExpQdataToQa rightNameleftNamejustName nothingName falseNametrueName extsEnabled isExtEnabledputQgetQ addCorePluginaddModFinalizeraddForeignFilePathaddForeignSourceaddForeignFile addTopDecls addTempFileaddDependentFilerunIOlocation isInstancereifyConStrictness reifyModulereifyAnnotations reifyRolesreifyInstances reifyFixityreifylookupValueNamelookupTypeName lookupNamerecover reportWarning reportErrorreportrunQcounterbadIOQuasiqNewNameqReportqRecover qLookupNameqReify qReifyFixityqReifyInstances qReifyRolesqReifyAnnotations qReifyModuleqReifyConStrictness qLocationqRunIOqAddDependentFile qAddTempFile qAddTopDeclsqAddForeignFilePathqAddModFinalizerqAddCorePluginqGetQqPutQ qIsExtEnabled qExtsEnabledModNamePkgNameOccName NameFlavourNameSNameQNameUNameLNameG NameSpace TcClsNameUniqNameIsInfixAloneApplied loc_filename loc_package loc_module loc_startloc_endCharPosInfoClassIClassOpITyConIFamilyI PrimTyConIDataConIPatSynIVarITyVarI ModuleInfo ParentNameSumAltSumArityArityUnlifted InstanceDecFixityDirectionInfixLInfixRInfixNCharLStringLIntegerL RationalLIntPrimL WordPrimL FloatPrimL DoublePrimL StringPrimL CharPrimLBodyGuardedBNormalBGuardNormalGPatGBindSLetSNoBindSParSRangeFromR FromThenRFromToR FromThenToR DerivClause StockStrategyAnyclassStrategyNewtypeStrategy ViaStrategy PatSynTypeTypeFamilyHeadTySynEqnForeignImportFExportFCallconvPrimUnsafe InterruptibleInlineP SpecialisePSpecialiseInstPRulePAnnPLineP CompletePInlineNoInline Inlinable RuleMatchConLikeFunLikePhases AllPhases FromPhase BeforePhaseRuleBndr AnnTargetModuleAnnotationTypeAnnotationValueAnnotationCxtSourceUnpackedness SourceUnpackSourceNoUnpackNoSourceUnpackednessSourceStrictness SourceLazy SourceStrictNoSourceStrictnessDecidedStrictness DecidedLazy DecidedStrict DecidedUnpackNormalCRecCInfixCForallCGadtCRecGadtCBang VarBangType StrictType VarStrictType PatSynDirUnidir ImplBidir ExplBidir PatSynArgs PrefixPatSyn InfixPatSyn RecordPatSyn TyVarBndrPlainTVKindedTVFamilyResultSigNoSigTyLitNumTyLitStrTyLitNominalRRepresentationalRPhantomRInferR AnnLookupAnnLookupModule AnnLookupName