为什么Alternative类型类需要是Control.Applicative的子类

时间:2015-05-27 11:25:36

标签: haskell applicative monoids

Haskell提供了一个标准类型类“替代”,可以为任何类型的应用程序有效地提供<|>运算符。

据我了解,替代品在应用上被视为Monoid,但<|>运算符似乎在许多非Applicative Functors的类型中完全有意义,并且不需要对Applicative类型类的任何特定依赖,以使其正常工作。

有没有理由为什么Alternative需要成为Applicative的子类,如果有的话,是否有一个标准的类型类来定义非应用类型的类似功能?

1 个答案:

答案 0 :(得分:6)

我认为Alt包中的semigroupoids最接近于'标准'类型类。 https://hackage.haskell.org/package/semigroupoids-5.0.0.1/docs/Data-Functor-Alt.html#t:Alt