Take some data Foo a b c, and i'd like to derive traverse like function for second argument. How hard would it be to parametrise makeTraverse to do that, i.e.
traverseFooB :: Applicative f => (b -> f b') -> Foo a b c -> f (Foo a b' c)
traverseFooB = $(makeTraverse ...)
Even more generally, would be even greater to have unified deriving mechanism for Bitraversable and futher kind-variations. (I had uses for tritraverse), maybe something like
traverseFooAB f g = makeTraversal ''Foo [Use 'f, Use 'g, Skip]
Take some
data Foo a b c, and i'd like to derivetraverselike function for second argument. How hard would it be to parametrisemakeTraverseto do that, i.e.Even more generally, would be even greater to have unified deriving mechanism for
Bitraversableand futher kind-variations. (I had uses fortritraverse), maybe something like