我有一个代码使用大约在 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/

10-11 08:14