Open
Description
There are sensible instances for QTraversable
that aren't QFoldable
, e.g.
data C p x y where C :: p a0 b0 -> C p a1 b1 -> C p (a0,b0) (a1,b1)
qtraverse :: Applicative m => (forall x y . p x y -> m (q x y)) -> C p x y -> m (C q x y)
qtraverse f (C p0 p1) = C <$> f p0 <*> f p1
qfoldMap :: Category q => (forall x y. p x y -> q x y) -> C p x y -> q x y
qfoldMap f (C p0 p1) = f p0 ??? f p1
Metadata
Metadata
Assignees
Labels
No labels