我有一个代码使用大约在 GHC 8.2 中定义的 fromRight
函数。但是我需要降级到GHC 8.0.2,这给出了一个关于Variable not in scope:
for fromRight
的错误
我想知道是否有可能以及如何添加缺少的定义
fromRight :: b -> Either a b -> b
fromRight _ (Right b) = b
fromRight b _ = b
以便它仅在我使用 8.2.1 之前的 GHC 版本时使用?
最佳答案
你总是可以写
import Prelude hiding (fromRight)
即使
fromRight
在 Prelude 中不存在,这也是有效的。因此,如果您想编写一个兼容 Prelude 新旧版本的模块,您可以简单地选择忽略新的 fromRight
函数,并始终使用库中的那个。关于haskell - 如何在 GHC 中仅为旧版本定义功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47065477/