Haskell提供了一个标准类型类“替代”,可以为任何类型的应用程序有效地提供<|>
运算符。
据我了解,替代品在应用上被视为Monoid,但<|>
运算符似乎在许多非Applicative Functors的类型中完全有意义,并且不需要对Applicative类型类的任何特定依赖,以使其正常工作。
有没有理由为什么Alternative需要成为Applicative的子类,如果有的话,是否有一个标准的类型类来定义非应用类型的类似功能?
答案 0 :(得分:6)
我认为Alt
包中的semigroupoids
最接近于'标准'类型类。 https://hackage.haskell.org/package/semigroupoids-5.0.0.1/docs/Data-Functor-Alt.html#t:Alt