从validation包的文档:
的
AccValidation数据类型是同构的Either,但有一个实例的Applicative,关于错误侧积聚.也就是说,如果遇到两个(或更多)错误,则使用Semigroup操作附加它们.作为该
Applicative实例的结果,没有对应Bind或Monad实例.AccValidation是一个"不是monad的应用函子"的例子.
我不清楚为什么会这样.我可以想象一个Monad例子的AccValidation行为就像Either- 什么会使这个非法?