【发布时间】:2016-04-20 08:34:48
【问题描述】:
我有一个foo :: a -> a -> Either String TypeConstructor 类型的函数foo 可以返回throwError String 和TypeConstructor 的东西。
我想做类似fmap 的事情。我的意思是我想case (foo x y z) of ... 其中... 表示不同的值(它取决于foo 中使用的构造函数值)。
有没有办法做到这一点?
【问题讨论】:
-
Either已经有一个Functor实例 - 所以如果你为TypeConstructor提供一个实例(这里是一个奇怪的名字) - 你可以只到fmap . fmap