úÎ0*Wf      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeportable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>portable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>) TH doesn' t handle:  * implicit params  !"#$%&'fTH does' t handle  * unboxed tuples  * implicit params  * infix type constructors  * kind signatures - ghi !"#$%&'jk(   !"#$%&'(    !"#$%&'portable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>lmn()*+,-./01234567()*+,-./01234567()*+,-./01234567()*+,-./01234567portable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>= ghi !"#$%&'jk()*+,-./01234567.89The type passed in must have a Show instance which 8 produces a valid Haskell expression. Returns an empty  String3 if this is not the case. This is not TH-specific,  but useful in general. :;<= unQ = unsafePerformIO . runQ>?@ABCDE5Infinite list of names composed of lowercase letters FGeneralisation of renameTs #renameT applied to a list of types GERename type variables in the Type according to the given association @ list. Normalise constructor names (remove qualification, etc.) J If a name is not found in the association list, replace it with one from F the fresh names list, and add this translation to the returned list. E The fresh names list should be infinite; myNames is a good example. HRemove qualification, etc. IJKProduces pretty code suitable  for human consumption. LMNOPQRSTUVWThe arity of a Type. XYRandomly useful. Z[\]^_`a.The strategy for producing QuasiQuoters which 2 this datatype aims to facilitate is as follows. 0 Given a collection of datatypes which make up 1 the to-be-quasiquoted languages AST, make each 2 type in this collection an instance of at least  Show and Lift. Now, assuming parsePat and  parseExp, both of type  String -> Q a (where a 5 is the top level type of the AST), are the pair of 7 functions you wish to use for parsing in pattern and 3 expression context respectively, put them inside  a Quoter$ datatype and pass this to quasify. bcde/89:;<=>?@ABCDEoFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde.89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde.89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdep      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvhaskell-src-meta-0.5&Language.Haskell.Meta.Syntax.TranslateLanguage.Haskell.Meta.ParseLanguage.Haskell.Meta.Utils"Language.Haskell.TH.Instances.LiftLanguage.Haskell.MetaToLoctoLocToStmttoStmtToDectoDecToDecstoDecsToExptoExpToPattoPatToTypetoTypeToLittoLitToNametoNamenoTHtodononsense toFieldExptoMatchtoBodytoKindtoTyVar.->.toCxtfoldAppT hsBindsToDecshsBangTypeToStrictTypequalConDeclToCon conDeclToConbangToVarStrictTypesbangToStrictTypehsMatchesToFunDhsMatchToClause hsRhsToBodyhsGuardedRhsToBody hsStmtToGuardparsePatparseExp parseType parseDecsmyDefaultParseModemyDefaultExtensionsparseResultToEither parseHsModule parseHsDecls parseHsType parseHsExp parseHsPat pprHsModule moduleDecls emptySrcLoc emptyHsModule cleanNamesprettyppppDocgprettyunQnameToRawCodeStr|$||.||->|unForall functionTmkVarTmyNamesrenameTsrenameT normaliseNameapplyTsubstTderiveLiftPrettysplitCon strictTypeTyvarStrictTypeTyconTypes conToConTypedecCons decTyVarsdecName foreignNameunwindTunwindEarityT typeToName nameSpaceOfconNamerecCName dataDCons fromDataConI fromTyConImkFunD mkClauseQtoExpQtoPatQ showToPatQeitherQ normalizeT $fToTypeType moduleNametoGuardtransAct collectVars fixForallDefaultFixitiesdefaultFixitiesdefaultFixityList renameThings