| Copyright | (c) 2018-2023 Kowainik |
|---|---|
| License | MIT |
| Maintainer | Kowainik <xrom.xkov@gmail.com> |
| Stability | Stable |
| Portability | Portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Relude.Extra.Bifunctor
Description
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
Since: 0.1.0
Documentation
bimapBoth :: Bifunctor f => (a -> b) -> f a a -> f b b Source #
Maps a function over both elements of a bifunctor.
>>>bimapBoth length ([True], [False, True])(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)
Since: 0.1.0