2~*/o      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnportable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>Noneportable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>NoneS  !"#$%&'()*+,opqrstuvwxyz{|}~-  !"#$%&'()*+,-   !"#$%&'()*+,J    !"#$%&'()*+,opqrstuvwxyz{|}~portable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>None-./0123456789:;<-./0123456789:;<-./0123456789:;<-./0123456789:;<None=>?@=>?@=>?@=>?@portable (template-haskell) experimentalMatt Morrow <mjm2002@gmail.com>None=  !"#$%&'()*+,-./0123456789:;<None BThe 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. F #unsafeRunQ = unsafePerformIO . runQN5Infinite list of names composed of lowercase letters OGeneralisation of renameTs P#renameT applied to a list of types QERename 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. RRemove qualification, etc. `The arity of a Type. bRandomly useful. j.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. 4ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn.ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn.ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn4ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn      !"#$%&'()*+,-./0123456789:;<=>?@ABC4567DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~haskell-src-meta-0.6.0.2&Language.Haskell.Meta.Syntax.TranslateLanguage.Haskell.Meta.Parse#Language.Haskell.Meta.Parse.CarefulLanguage.Haskell.Meta.Utils"Language.Haskell.TH.Instances.LiftLanguage.Haskell.MetaToLoctoLocToStmttoStmtToDectoDecToDecstoDecsToExptoExpToPattoPatToTypetoTypeToLittoLitToNametoName moduleNamenoTHtodononsense toFieldExptoMatchtoBodytoGuardtoKindtoTyVar.->.toCxtfoldAppT hsBindsToDecshsBangTypeToStrictTypetransActqualConDeclToCon conDeclToConbangToVarStrictTypesbangToStrictTypehsMatchesToFunDhsMatchToClause hsRhsToBodyhsGuardedRhsToBody hsStmtToGuard collectVars fixForallparsePatparseExp parseType parseDecsmyDefaultParseModemyDefaultExtensionsparseResultToEither parseHsModule parseHsDecls parseHsType parseHsExp parseHsPat pprHsModule moduleDecls emptySrcLoc emptyHsModule cleanNamesprettyppppDocgpretty unsafeRunQnameToRawCodeStr|$||.||->|unForall functionTmkVarTmyNames renameThingsrenameTsrenameT normaliseNameapplyTsubstTsplitCon strictTypeTyvarStrictTypeTyconTypes conToConTypedecCons decTyVarsdecName foreignNameunwindTunwindEarityT typeToName nameSpaceOfconNamerecCName dataDCons fromDataConI fromTyConImkFunD mkClauseQtoExpQtoPatQ showToPatQeitherQ normalizeT $fToDecsBinds $fToDecs[] $fToDecsDecl$fToDecsInstDecl $fToDecDecl $fToStmtStmt $fToTypeType $fToTypeKind$fToNameTyVarBndr $fToNameName$fToNameTyVarBind $fToLocSrcLoc $fToExpExp $fToExpQOp $fToPatPat$fToLitLiteral $fToNameOp $fToNameQName$fToNameSpecialCon$fToNameModule $fToNameName0 $fToName[] $fToLitDouble $fToLitFloat $fToLitInt$fToLitInteger $fToLit[] $fToLitChar $fToPat(,,,) $fToPat(,,) $fToPat(,) $fToPat[] $fToPatLit $fToExp(,,,) $fToExp(,,) $fToExp(,) $fToExp[] $fToExpLitDefaultFixitiesdefaultFixitiesdefaultFixityList$fDefaultFixitiesMaybe$fDefaultFixities[]$fDefaultFixitiesFixity doCheckedamb$fShowQ$fShowQ0$fShowQ1$fShowQ2$fShowQ3$fShowQ4