oxO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-InferredNonelA 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 ". pThis is the resulting type of a function generating a module. It is a ModuleM action returning the export list. WA 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', '!']MThis 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. WThis monad keeps track of a counter for generating unique names and the set of modules % that are needed for the expression. AExtract the set of modules and the value from a Generate action. ?Use a haskell-src-exts Exp as the result of a Generate action. 9Pretty print the expression generated by a given action. Generate a case expression. hImport a function from a module. This function is polymorphic in the type of the resulting expression, X you should probably only use this function to define type-restricted specializations.  Example: Y addInt :: ExpG (Int -> Int -> Int) -- Here we restricted the type to something sensible * addInt = useValue "Prelude" $ Symbol "+" YImport a value constructor from a module. Returns the qualified name of the constructor. 1Use 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 N is only unique relative to other variable names generated by this function. 5Apply a function in a haskell expression to a value.  Operator for . ApplyE for 2 arguments  Apply a function to 3 arguments  Apply a function to 4 arguments  Apply a function to 5 arguments ! Apply a function to 6 arguments "1Generate 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&MMake 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 P 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*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˢ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno  !"#$%*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~p       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYZ[\]^_`abcdeffgghhijkillmnopq@rstuAvwxyz{||}~      !"#$%&'()*++,-./0123456789:;<=>?@ABCDEFGHIJEKLMKNNOPOQOROSOSTUTVTUTWTXTYTZT[T\T]^haskell-generate-0.2.2Language.Haskell.Generate.Monad$Language.Haskell.Generate.ExpressionLanguage.Haskell.Generate.TH$Language.Haskell.Generate.PreludeDefLanguage.Haskell.Generatehaskell-src-exts-1.16.0.1Language.Haskell.Exts.SyntaxIdentSymbolName 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'<>.tuple0tuple2tuple3tuple4tuple5cons$fGenExpFunRef $fGenExp(->) $fGenExp[] $fGenExpRatio$fGenExpInteger $fGenExpChar$fGenExpExpression$fGenExpGenerate $fNumGenerate 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_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 ModuleNameUnitConListConFunConTupleConConsUnboxedSingleCon SpecialConQualUnQualSpecialQNameIPDupIPLinIPNameQVarOpQConOpQOpVarOpConOpOpVarNameConNameCNameModuleEVarEAbs EThingAll EThingWithEModuleContents ExportSpec NoNamespace TypeNamespace Namespace importSpecsimportAs importPkg importSafe importSrcimportQualified importModule importLoc ImportDeclIVarIAbs IThingAll IThingWith ImportSpec AssocNone AssocLeft AssocRightAssocDerivingTypeDecl TypeFamDeclClosedTypeFamDeclDataDecl GDataDecl DataFamDecl TypeInsDecl DataInsDecl GDataInsDecl ClassDeclInstDecl DerivDecl InfixDecl DefaultDecl SpliceDeclTypeSigFunBindPatBindForImpForExpRulePragmaDeclDeprPragmaDeclWarnPragmaDecl InlineSigInlineConlikeSigSpecSig SpecInlineSigInstSig AnnPragma MinimalPragmaDeclTypeEqnAnnTypeAnn ModuleAnn Annotation VarFormula AndFormula OrFormula ParenFormulaBooleanFormulaDataTypeNewType DataOrNewBDeclsIPBindsBindsIPBindMatch QualConDeclConDecl InfixConDeclRecDeclGadtDeclClsDecl ClsDataFamClsTyFamClsTyDef ClsDefSigInsDeclInsTypeInsDataInsGDataBangedTy UnpackedTyBangType UnGuardedRhs GuardedRhssRhs GuardedRhsTyForallTyFunTyTupleTyList TyParArrayTyAppTyVarTyConTyParenTyInfixTyKind TyPromotedTyEqualsTySpliceTyBangTypePromotedIntegerPromotedString PromotedCon PromotedList PromotedTuple PromotedUnitPromoted KindedVar UnkindedVar TyVarBindKindStarKindBangKindFn KindParenKindVarKindApp KindTupleKindListKindFunDepContextClassAVarAInfixAIParamEqualPParenAAsstCharStringIntFracPrimIntPrimWord PrimFloat PrimDoublePrimChar PrimStringLiteralSignlessNegativeSignVarIPVarConLitInfixAppAppNegAppLambdaLetIfMultiIfCaseDoMDoTuple TupleSectionListParArrayParen LeftSection RightSection RecConstr RecUpdateEnumFrom EnumFromTo EnumFromThenEnumFromThenToParArrayFromToParArrayFromThenToListCompParComp ParArrayComp ExpTypeSigVarQuoteTypQuote BracketExp SpliceExp QuasiQuoteXTagXETagXPcdataXExpTag XChildTag CorePragma SCCPragma GenPragmaProc LeftArrApp RightArrAppLeftArrHighAppRightArrHighAppLCaseExpXNameXDomNameXAttr ExpBracket PatBracket TypeBracket DeclBracketBracketIdSplice ParenSpliceSplice PlayRiskyPlaySafePlayInterruptibleSafetyStdCallCCall CPlusPlusDotNetJvmJsCApiCallConvLanguagePragma OptionsPragmaAnnModulePragma ModulePragma NoOverlapOverlap Incoherent AlwaysActive ActiveFrom ActiveUntil ActivationRuleRuleVar TypedRuleVarDeprTextWarnText WarningTextPVarPLitPNPlusK PInfixAppPAppPTuplePListPParenPRecPAsPat PWildCardPIrrPat PatTypeSigPViewPatPRPatPXTagPXETagPXPcdataPXPatTagPXRPats PQuasiQuotePBangPatPatPXAttrRPStarRPStarGRPPlusRPPlusGRPOptRPOptGRPatOpRPOpRPEitherRPSeqRPGuardRPCAsRPAsRPParenRPPatRPat PFieldPat PFieldPunPFieldWildcardPatField Generator QualifierLetStmtRecStmtStmtQualStmt ThenTransThenByGroupBy GroupUsing GroupByUsing FieldUpdateFieldPun FieldWildcardAltLanguage.Haskell.Exts.SrcLoc srcColumnsrcLine srcFilenameSrcLoc&Language.Haskell.Exts.Annotated.SyntaxBoxedUnboxedGHCHUGSNHC98YHCHADDOCK UnknownToolTool