/caterwaul/Functor/Endo/Star/Type

Copy path to clipboard

This is very similar to Haskell’s Traversable, except that it can be implemented for an arbitrary m, doesn’t necessarily require an Applicative instance, and also may be more constrained than Applicative.

Source

{-|
This is very similar to Haskell’s `Traversable`, except that it can be
implemented for an arbitrary `m`, doesn’t necessarily require an `Applicative`
instance, and also may be _more_ constrained than `Applicative`.
-}
let kCat = ../../../Category/Cat/semigroupal

in λ(vObject : Kind) →
λ(object : Kind) →
λ(v : ../../../Category/Kind kCat Type vObject) →
λ(cat : ../../../Category/Kind kCat vObject object) →
λ(m : kCat.arrow object object) →
../Type
vObject
object
v
(../../../Category/Kleisli/category vObject object cat m)