mod*_*lar 5 haskell dynamic-loading ghc-api
我们可以使用GHC API或其他东西加载非文本源模块,但AST表达式,类似于haskell-src-exts Exp类型?这样我们就可以节省代码生成和解析的时间.
我不认为 GHC API 公开了 AST 接口(尽管可能是错误的),但 Template Haskell 公开了。如果使用Language.Haskell.TH Exp结构构建表达式,则可以创建函数/声明并通过语法使用它们$(someTHFunction)。
一个相当重要的警告是 TH 仅在编译时运行,因此您需要预先生成所有内容。如果你想在运行时使用 TH,我认为你需要漂亮地打印模板 haskell AST,然后在结果字符串上使用 GHC API。