pPP      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SafeNone 35>CLNlA reference to a function. With a reference to a function, you can apply it (by lifting it into ExprT using $) to some value or export it using ". oThis is the resulting type of a function generating a module. It is a ModuleM action returning the export list. VA module keeps track of the needed imports, but also has a list of declarations in it. [Generate a expression from a haskell value. This can for example be used to create lambdas:/putStrLn $ generateExp $ expr (\x f -> f <>$ x)%\ pvar_0 -> \ pvar_1 -> pvar_1 pvar_0Or string literals:-putStrLn $ generateExp $ expr "I'm a string!"B['I', '\'', 'm', ' ', 'a', ' ', 's', 't', 'r', 'i', 'n', 'g', '!']LThis function generates the haskell expression from the given haskell value.NThis is a type alias for a Generate action that returns an expression of type t.{This monad keeps track of a counter for generating unique names and the set of modules that are needed for the expression.@Extract the set of modules and the value from a Generate action.>Use a haskell-src-exts Exp as the result of a Generate action.8Pretty print the expression generated by a given action.Generate a case expression.Import a function from a module. This function is polymorphic in the type of the resulting expression, you should probably only use this function to define type-restricted specializations. Example: addInt :: ExpG (Int -> Int -> Int) -- Here we restricted the type to something sensible addInt = useValue "Prelude" $ Symbol "+"XImport a value constructor from a module. Returns the qualified name of the constructor.0Use the value of a variable with the given name.Generate a new unique variable name with the given prefix. Note that this new variable name is only unique relative to other variable names generated by this function. 4Apply a function in a haskell expression to a value. Operator for . ApplyE for 2 argumentsApply a function to 3 argumentsApply a function to 4 arguments Apply a function to 5 arguments!Apply a function to 6 arguments"0Generate a ExportSpec for a given function item.#Add a declaration to the module. Return a reference to it that can be used to either apply the function to some values or export it.$+Extract the Module from a module generator.%&Generate the source code for a module.'  !"#$%"  !"#$%" !  "#$%!    !"#$%None&LMake a ExpG for the given function, using the given name for the definition.'Make a ExpG for some thing, using the given name for the definition. The third tuple element specifies the constructor to use for constructing the Name. This can either be 'Symbol (for symbols) or 'Ident (for functions).(:Declare a symbol, using the given name for the definition.)Declare a function. The name of the definition will be the name of the function with an added apostrophe. (Example: declareFunction 'add generates a definition with the name add').&'()&'())(&'&'()None(35>*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~̤~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Noneq      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-.//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_``abcdefghijklmnopqrstuuvvwwxyzz{{|}~QP       !""#$%&'()*+,-./0123456789:;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^__``abacadaeaefgfhfhfifjfkflfmfnfophaske_L5dJ7GTTjYeEaP3d8pvqJALanguage.Haskell.Generate.Monad$Language.Haskell.Generate.ExpressionLanguage.Haskell.Generate.TH$Language.Haskell.Generate.PreludeDefLanguage.Haskell.Generatehaske_9Bj6ho1WrowEhYGJftp4NMLanguage.Haskell.Exts.SyntaxSymbolIdentName Expression runExpressionappFunRefModuleGModuleMGenExp GenExpTypeexprExpGGenerate unGenerate runGeneratereturnE generateExpcaseEuseValueuseConuseVarnewNameapplyE<>$applyE2applyE3applyE4applyE5applyE6 exportFunaddDecl runModuleMgenerateModuledeclareNamedFunctiondeclareNamedThingdeclareNamedSymboldeclareFunctionmaybe'either'fst'snd'curry'uncurry'not'negate'abs'signum' fromInteger'quot'rem'div'mod'quotRem'divMod' toInteger'recip' fromRational'pi'exp'log'sqrt'logBase'sin'cos'tan'asin'acos'atan'sinh'cosh'tanh'asinh'acosh'atanh'properFraction' truncate'round'ceiling'floor' floatRadix' floatDigits' floatRange' decodeFloat' encodeFloat' exponent' significand' scaleFloat'isNaN' isInfinite'isDenormalized'isIEEE'isNegativeZero'atan2' subtract'even'odd'gcd'lcm' fromIntegral' realToFrac'fmap'return'mapM'mapM_'id'const'flip'until' asTypeOf' undefined'map'filter'head'last'tail'init'null'length'reverse'foldl'foldr'foldl1'foldr1'and'or'any'all'sum'product'concat' concatMap'maximum'minimum'scanl'scanr'scanl1'scanr1'iterate'repeat' replicate'cycle'take'drop'splitAt' takeWhile' dropWhile'span'break'elem'notElem'lookup'zip'zip3'zipWith' zipWith3'unzip'unzip3'lines'words'unlines'unwords'read'show'putChar'putStr' putStrLn'print'getChar'getLine' getContents' interact' readFile' writeFile' appendFile'readIO'readLn'just'left'right'false'true'nothing'dot'add'mult'divide' floatPow'bind'then'append'index'equal' notequal'<>.tuple0tuple2tuple3tuple4tuple5cons $fNumGenerate$fGenExpFunRef $fGenExp(->) $fGenExp[] $fGenExpRatio$fGenExpInteger $fGenExpChar$fGenExpExpression$fGenExpGenerate tuple_tyconunboxed_singleton_tycon list_tycon fun_tycon unit_tycontuple_tycon_nameunboxed_singleton_tycon_namelist_tycon_namefun_tycon_nameunit_tycon_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 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 ModuleNameUnboxedSingleConConsTupleConFunConListConUnitCon SpecialConSpecialUnQualQualQNameIPLinIPDupIPNameQConOpQVarOpQOpConOpVarOpOpConNameVarNameCNameModuleEModuleContents EThingWith EThingAllEAbsEVar ExportSpecPatternNamespace TypeNamespace NoNamespace Namespace importSpecsimportAs importPkg importSafe importSrcimportQualified importModule importLoc ImportDecl IThingWith IThingAllIAbsIVar ImportSpec AssocRight AssocLeft AssocNoneAssocDeriving RoleAnnotDecl MinimalPragma AnnPragmaInstSig SpecInlineSigSpecSigInlineConlikeSig InlineSigWarnPragmaDeclDeprPragmaDeclRulePragmaDeclPatSynForExpForImpPatBindFunBind PatSynSigTypeSig SpliceDecl DefaultDecl InfixDecl DerivDeclInstDecl ClassDecl GDataInsDecl DataInsDecl TypeInsDecl DataFamDecl GDataDeclDataDeclClosedTypeFamDecl TypeFamDeclTypeDeclDeclExplicitBidirectionalImplicitBidirectionalUnidirectionalPatternSynDirectionTypeEqn ModuleAnnTypeAnnAnn Annotation ParenFormula OrFormula AndFormula VarFormulaBooleanFormula RoleWildcardPhantomRepresentationalNominalRoleNewTypeDataType DataOrNewIPBindsBDeclsBindsIPBindMatch QualConDeclRecDecl InfixConDeclConDeclGadtDecl ClsDefSigClsTyDefClsTyFam ClsDataFamClsDeclInsGDataInsDataInsTypeInsDecl UnpackedTyBangedTyBangType GuardedRhss UnGuardedRhsRhs GuardedRhs TyWildCardTyBangTySpliceTyEquals TyPromotedTyKindTyInfixTyParenTyConTyVarTyApp TyParArrayTyListTyTupleTyFunTyForallType PromotedUnit PromotedTuple PromotedList PromotedConPromotedStringPromotedIntegerPromoted UnkindedVar KindedVar TyVarBindKindList KindTupleKindAppKindVar KindParenKindFnKindStarKindFunDepContext WildCardAParenAEqualPIParamInfixAAppAClassAAsst PrimStringPrimChar PrimDouble PrimFloatPrimWordPrimIntFracIntStringCharLiteralNegativeSignlessSignExprHoleLCaseRightArrHighAppLeftArrHighApp RightArrApp LeftArrAppProc GenPragma SCCPragma CorePragma XChildTagXExpTagXPcdataXETagXTag QuasiQuote SpliceExp BracketExpTypQuoteVarQuote ExpTypeSig ParArrayCompParCompListCompParArrayFromThenToParArrayFromToEnumFromThenTo EnumFromThen EnumFromToEnumFrom RecUpdate RecConstr RightSection LeftSectionParenParArrayList TupleSectionTupleMDoDoCaseMultiIfIfLetLambdaNegAppAppInfixAppLitConIPVarVarExpXDomNameXNameXAttr DeclBracket TypeBracket PatBracket ExpBracketBracket ParenSpliceIdSpliceSplicePlayInterruptiblePlaySafe PlayRiskySafetyCApi JavaScriptJsJvmDotNet CPlusPlusCCallStdCallCallConvAnnModulePragma OptionsPragmaLanguagePragma ModulePragma IncoherentOverlap NoOverlap ActiveUntil ActiveFrom AlwaysActive ActivationRule TypedRuleVarRuleVarWarnTextDeprText WarningTextPBangPat PQuasiQuotePXRPatsPXPatTagPXPcdataPXETagPXTagPRPatPViewPat PatTypeSigPIrrPat PWildCardPAsPatPRecPParenPListPTuplePApp PInfixAppPNPlusKPLitPVarPatPXAttrRPOptGRPOptRPPlusGRPPlusRPStarGRPStarRPatOpRPPatRPParenRPAsRPCAsRPGuardRPSeqRPEitherRPOpRPatPFieldWildcard PFieldPun PFieldPatPatFieldRecStmtLetStmt Qualifier GeneratorStmt GroupByUsing GroupUsingGroupByThenBy ThenTransQualStmt FieldWildcardFieldPun FieldUpdateAltLanguage.Haskell.Exts.SrcLoc srcColumnsrcLine srcFilenameSrcLoc&Language.Haskell.Exts.Annotated.SyntaxUnboxedBoxed UnknownToolHADDOCKYHCNHC98HUGSGHCTool