当我使用
我的问题是:如果有任何微小的错误,ghci就无法加载任何内容(甚至连导入的模块也不行!!),这使得查找正确类型更加困难。我总是做同样的事情:注释掉所有不符合类型检查的部分,在ghci中找到相关类型,然后取消注释。
但这非常繁琐!是否有更好的工作流程可以“部分编译”Haskell源代码?
ghci
编译Haskell文件,通常使用:load
,如果没有类型错误,则所有表达式都将加载到ghc解释器中。这非常好:我可以使用:t
来玩弄各种表达式的类型。我的问题是:如果有任何微小的错误,ghci就无法加载任何内容(甚至连导入的模块也不行!!),这使得查找正确类型更加困难。我总是做同样的事情:注释掉所有不符合类型检查的部分,在ghci中找到相关类型,然后取消注释。
但这非常繁琐!是否有更好的工作流程可以“部分编译”Haskell源代码?
:set -fdefer-type-errors
是 Haskell 编译器 GHC 提供的一个选项,它可以延迟类型错误的报告直到运行时。这个选项可以帮助开发者更容易地调试复杂的代码。 - Mikhail Glushenkov