Copyright | (c) 2018-2019 Kowainik |
---|---|
License | MIT |
Maintainer | Kowainik <xrom.xkov@gmail.com> |
Safe Haskell | Safe |
Language | Haskell2010 |
Useful combinators for bifunctors inside functors. This set of functions is useful when you want to work with types like these ones:
foo :: IO (Either a b) bar :: IO (a, b) baz :: Maybe (Either a b) qux :: Maybe (a, b) doo :: (a, a) dee :: Either a a
Documentation
bimapBoth :: Bifunctor f => (a -> b) -> f a a -> f b b Source #
Maps a function over both elements of a bifunctor.
>>>
bimapBoth length ("a", "bb")
(1,2)>>>
map (bimapBoth not) [Left True, Right False]
[Left False,Right True]
Since: 0.6.0.0
bimapF :: (Functor f, Bifunctor p) => (a -> c) -> (b -> d) -> f (p a b) -> f (p c d) Source #
Fmaps functions for nested bifunctor. Short for fmap (bimap f g)
.
>>>
bimapF not length $ Just (False, ['a', 'b'])
Just (True,2)