我正在标准库中寻找一个函数,其签名与此类似:
Traversable f => f (Either e a) -> Either [e] (f a)
Run Code Online (Sandbox Code Playgroud)
或者可能是这样的:
(Traversable f, Monoid e) => f (Either e a) -> Either e (f a)
Run Code Online (Sandbox Code Playgroud)
这个想法是收集错误而不是在遇到第一个错误时失败。
我看到我的函数看起来很像sequence,我希望已经有一个类型类来建模这种模式。
haskell ×1