从GHC Monad返回表达

时间:2017-08-13 12:00:50

标签: haskell ghc ghci

我发现了这个blog post,我正在玩一些示例代码。

我已将第一个示例修改为如下所示:

main = defaultErrorHandler defaultFatalMessager defaultFlushOut $ do
runGhc (Just libdir) $ do
    dflags <- getSessionDynFlags
    setSessionDynFlags $ dflags { hscTarget = HscInterpreted
                                , ghcLink   = LinkInMemory
                                }
    setTargets =<< sequence [guessTarget "test.hs" Nothing]
    load LoadAllTargets
    setContext [IIModule $ mkModuleName "Test"]
    !act <- unsafeCoerce <$> compileExpr "print test"  
    setTargets []
    load LoadAllTargets
    liftIO act

这恰好起作用,但这看起来并不安全 - 对我而言,这似乎是我使用模块i中的符号卸载。这会在非平凡的情况下起作用吗?

0 个答案:

没有答案