I searched for t (f a) (f b) -> f (t a b) and got:
No results found
If I add type constraints then everything works fine.
For (Bitraversable t, Applicative f) => t (f a) (f b) -> f (t a b) result is:
bisequenceA :: (Bitraversable t, Applicative f) => t (f a) (f b) -> f (t a b)
bisequence :: (Bitraversable t, Applicative f) => t (f a) (f b) -> f (t a b)
However such search request (without type constraints!) t a b -> (a -> f c) -> (b -> f d) -> f (t c d) gives expected result:
bifor :: (Bitraversable t, Applicative f) => t a b -> (a -> f c) -> (b -> f d) -> f (t c d)
biforM :: (Bitraversable t, Applicative f) => t a b -> (a -> f c) -> (b -> f d) -> f (t c d)
It seems that everything breaks here -- t (f a) (f b)
I searched for
t (f a) (f b) -> f (t a b)
and got:If I add type constraints then everything works fine. For
(Bitraversable t, Applicative f) => t (f a) (f b) -> f (t a b)
result is:However such search request (without type constraints!)
t a b -> (a -> f c) -> (b -> f d) -> f (t c d)
gives expected result:It seems that everything breaks here --
t (f a) (f b)