我正在尝试使用runghc
运行一些Safe Haskell代码,但它似乎对我不起作用。
bgeron@tinker:/tmp/wtf$ ls
Strange.hs
bgeron@tinker:/tmp/wtf$ cat Strange.hs
module Strange where
main :: IO ()
main = do
return ()
bgeron@tinker:/tmp/wtf$ runghc -XSafe Strange
Strange:1:1: Not in scope: `System.Environment.withArgs'
bgeron@tinker:/tmp/wtf$ runghc --version
runghc 7.6.3
我认为这是
runghc
的有效用法;该错误最令人困惑。这是一个错误吗?我正在使用64位的Ubuntu 14.04。
最佳答案
观察到的行为可以通过以下解释。runghc
的实现在这里:
https://ghc.haskell.org/trac/ghc/browser/ghc/utils/runghc/runghc.hs
它将对ghc
进行以下调用,该调用还显示了奇怪的行为:
ghc -XSafe -e ':main' Strange.hs
在evalatue-expression模式下执行ghc将添加有问题的导入:
https://ghc.haskell.org/trac/ghc/browser/ghc/ghc/InteractiveUI.hs#L1154
我不确定这是否是错误。我同意这令人困惑。
关于haskell - 为什么使用-XSafe时runghc失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26279174/