有没有办法创建一个可以做类似这个功能的镜头?
λ> :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
从镜头,但似乎无法使类型对齐。