Ghc:部分编译 Haskell 代码?

17
当我使用ghci编译Haskell文件,通常使用:load,如果没有类型错误,则所有表达式都将加载到ghc解释器中。这非常好:我可以使用:t来玩弄各种表达式的类型。
我的问题是:如果有任何微小的错误,ghci就无法加载任何内容(甚至连导入的模块也不行!!),这使得查找正确类型更加困难。我总是做同样的事情:注释掉所有不符合类型检查的部分,在ghci中找到相关类型,然后取消注释。
但这非常繁琐!是否有更好的工作流程可以“部分编译”Haskell源代码?

26
:set -fdefer-type-errors 是 Haskell 编译器 GHC 提供的一个选项,它可以延迟类型错误的报告直到运行时。这个选项可以帮助开发者更容易地调试复杂的代码。 - Mikhail Glushenkov
1
哦!正是我需要的!谢谢!! - Olivier Verdier
12
@MikhailGlushenkov 创造带有链接的答案 :D - d12frosted
1个回答

9

正如 @MikhailGlushenkov 在评论中指出的那样,解决方案是在 GHCi 中使用 -fdefer-type-errors 标志。


哦,我的天啊,我需要这个 - Bartek Banachewicz
@BartekBanachewicz 我也对此感到非常兴奋,立即添加到我的.ghci文件中。 - bheklilr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接