有没有办法制作一个可以对这个功能做类似事情的镜头?
λ> :t \f -> bitraverse f f
\f -> bitraverse f f
:: (Applicative f, Bitraversable t) =>
(b -> f d) -> t b b -> f (t d d)
目前我想要满足的特定类型是:
something :: (Applicative f, Monad m) => (a -> f a) -> (m a, m a) -> f (m (a, a))
我一直在尝试使用镜头中的traverseOf
和both
,但似乎无法将这些类型排成一行。