úÎ g1Sá±      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw x y z { |}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ !"‘#’#“#”#•#–#—#˜#™#š#›#œ##ž#Ÿ# #¡#¢$£$¤%¥%¦&§&¨'©'ª'«(¬(­(®(¯(°(*) ±     !"#$%&'()*+,-./ !"#$%&'()*+,-./ !"#$%&'()*+,-./0+Expand type synonyms in a data declaration 0001AThis class is used to overload literal construction based on the  type of the literal. 3?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. 48Build an application node, with a name for a head and a  provided list of arguments. 5Reference a named variable. 6 Lift a TH ²*+ 7Tupling 8Listing >*A simple clause, without where or guards. ?#A default clause with N arguments. @A simple Val clause C,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 FBBuild an instance of a class for a data type, using the heuristic 9 that the type is itself required on all type arguments. GQBuild an instance of a class for a data type, using the class at the given types H#Build a fundecl with a string name I/Build an application node without a given head K/Common pattern: list of a familiy of variables L$Variable based on a letter + number MAMake a list of variables, one for each argument to a constructor N,Make a simple pattern to bind a constructor O!Reference the constructor itself g;Build a chain of expressions, with an appropriate terminal Z sequence__ does not require a unit at the end (all others are optimised automatically) k K-way liftM =123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU³VW´XYZ[\]^_`abcdefghijk;<=;>?@ABCDEFGH9:345678I12JKLMNOPQRTUSWVXY[Z\^_`abdc]eghjifk;122345678456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnlnmlmno$The type of ways to derive classes. ( Should not really be in this module! qThe derivation function proper rThe name of the derivation ÿ0µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     ² !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk ±  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU³VW´XYZ[\]^_`abcdefghijklmnopqrstopqrstopqrpqrstuuuvvv www xxx yyy zzz {{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒ ŽŽŽ!"#l"Information on argument positions m'Monad that collects required instances n(What argument of the current data type? o%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 p@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 qDerive a clause of a traverse! like function for a constructor rDerive a traversal for a type sBFind all arguments to a type application, then derive a traversal t7Lift a traversal to the argument of a type constructor u)Position of an argument in the data type  In the type  data X a b c ) positions are: a -> 3, b -> 2, c -> 1 ‘’“”•–—˜™š›œvžŸ ¡‘’“”•–—˜™š›œž Ÿ¡‘ ’“”•–—˜™š›œ’“”•–—˜™š›œžŸ ¡$¢£¢£¢£%¤¥¤¥¤¥&¦§¦§¦§,"uvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ¢£¤¥¦§'¨"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. ªBDerive for a type and print the code to standard output. This is 7 a internal hook for the use of the Derive executable. w Extract a  value from a type using the TH Û*+  framework. &ouvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ¢£¤¥¦§¨©ª¨©oª¨©ª(x@Drop the first _ and everything after it; used to trim GHC name  uniques. °.Guess an instantiator from a sample instance. y/A fake constructor for the unary tuple. Helps °( to see 7 patterns in progressions of differently sized tuples. >Chop and mangle a String representing Haskell code so that it 4 fits in 80 columns, without regard for prettiness. z8Process a tree produced by a quasiquote, stripping name D uniquifiers and changing applications and tuplings into a standard  form. «¬­®¯°{«¯®­¬°«¯®­¬¬­®¯°|-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œœžŸ ¡¢ £ ¤ ¥ ¦ §¨©ª«¬­®¯°±²³´µ¶·¸¹ º!»"¼#½#½#¾#¿#À#Á#Â#Ã#Ä#Å#Æ#Ç#È#É#Ê#Ë#Ì$Í$Î%Ï%Ð&Ñ&Ò'Ó'Ô'Õ(Ö(×(Ø(Ù(Ú(ÛÜ*+ÝÞß*+à*+á*+â*+ã*+ä*+å*+æ*+ç*+è*+é*+ê*+ë*+ì*+í*+î*+ï*+ð*+ñ*+ò*+ó*+ô*+õ*+ö*+÷*+ø*+ù*+ú*+û*+ü*+ý*+þ*+ÿ*+*+*+*+*+*+*+*+*+*+ *+ *+ *+ *+ *+*+*+*+*+*+*+*+ó*+*+*+*+*+*+*+*+Ö*+*+*+*+*+ *+!*+"*+#*+$*+%*+&*+'*+(*+(*+)*+**++*+,*+-*+.*+/*+0*+1*+2*+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*+{*+|*+}*+~*+*+€*+*+‚*+ƒ*+„*+…*+†*+‡*+ˆ*+‰*+Š*+‹*+Œ*+*+Ž*+##‘#’#“#”#•#–#—#˜#™#š'›(œ((ž(Ÿ  derive-0.1.4Language.Haskell.TH.FixedPprLanguage.Haskell.TH.Data!Language.Haskell.TH.ExpandSynonymLanguage.Haskell.TH.HelperLanguage.Haskell.TH.PeepholeLanguage.Haskell.TH.AllData.Derive.UpdateData.Derive.UniplateData.Derive.TypeableData.Derive.TTypeableData.Derive.ShowData.Derive.SetData.Derive.SerialData.Derive.RefData.Derive.ReadData.Derive.PlateTypeableData.Derive.PlateDirectData.Derive.OrdData.Derive.NFDataData.Derive.MonoidData.Derive.LazySetData.Derive.IsData.Derive.HasData.Derive.FromData.Derive.EqData.Derive.EnumCyclicData.Derive.EnumData.Derive.DataData.Derive.BoundedData.Derive.BinaryOldData.Derive.BinaryDeferData.Derive.BinaryData.Derive.Arbitrary2Data.Derive.ArbitraryData.DeriveTraversalData.Derive.FoldableData.Derive.FunctorData.Derive.Traversable Data.DeriveTHData.DeriveGuessLanguage.Haskell.TH.SYBtemplate-haskellLanguage.Haskell.TH.SyntaxData.Derive.AllPprpprppr_list Precedence nestDepthappPrecopPrecnoPrecparensIf showNameRaw isPrefixNamepprName_pprint pprFixity pprExpInfixpprExp pprFields pprMaybeExppprBodypprLitpprPatpprVarStrictType pprStrictType pprParendTypepprTyAppsplitpprCxt where_clause showtextlCtorDefDataDefdataNamequalifiedDataName dataArity dataCtorsctorNamequalifiedCtorName ctorArityctorStrictTypes ctorTypes ctorFields dropModulenormDataunqualifiedNametypeAppeqConTisTupleTex_args expandDataLitClitValconlKvrraw_littuplstNameLiketoName applyWith foldl1With foldr1Withsclause defclausesvalcase'->: instance_noneinstance_defaultinstance_contextsimple_instancegeneric_instancefunNappdataVarsvarsvrnctvctpctcl0l1l2truefalsenilhNil'hZero'consboxreturn'const'hSucc'==:&&:++:>>=:>>:.:>:ap'hCons'&&::++::>>::.:: sequence__liftmkpeephole replaceVars replaceVar DerivationderivationDeriverderivationName derivation derivationQ makeUpdate makeUniplate makeTypeable makeTTypeablemakeShowmakeSet makeSerialmakeRefmakeReadmakePlateTypeablemakePlateDirectmakeOrd makeNFData makeMonoid makeLazySetmakeIsmakeHasmakeFrommakeEqmakeEnumCyclicmakeEnummakeData makeBounded makeBinaryOldmakeBinaryDefer makeBinarymakeArbitrary2 makeArbitrary TraveralType traversalArg traversalCo traversalName traversalIdtraversalDirect traversalFunc traversalPlus traverseArrow traverseTuple traverseCtor traverseFunctraversalDerivation1traversalInstance1traversalInstancederiveTraversal makeFoldable makeFoldableN makeFunctor makeFunctorNmakeTraversablemakeTraversableNderive deriveFromDec_derive_string_instanceDataNameCtorTwo'CtorTwoCtorOneCtorZeroguessppr_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 VarStrictTypeForallTVarTConTTupleTArrowTListTAppT ArgPositions WithInstancesrequiredDataArgrequiredPositionTravderiveTraversalCtorderiveTraversalTypederiveTraversalApp traverseArg argPositionsdefaultTraversalType deriveOneEnvwidthifyunQtup1