nri-prelude-0.4.0.0: src/Internal/Shortcut.hs
{- HLINT ignore -}
module Internal.Shortcut
( map,
map2,
map3,
map4,
map5,
map6,
map7,
map8,
map9,
andMap,
andThen,
afterwards,
blank,
)
where
import Prelude (Applicative, Functor, Monad, fmap, pure, (<*>), (>>=))
-- |
andThen :: Monad m => (a -> m b) -> m a -> m b
andThen b a =
a >>= b
-- |
afterwards :: Monad m => m b -> m a -> m b
afterwards b a =
a >>= (\_ -> b)
-- |
map :: Functor m => (a -> value) -> m a -> m value
map =
fmap
-- |
map2 :: Applicative m => (a -> b -> value) -> m a -> m b -> m value
map2 func a b =
pure func <*> a <*> b
-- |
map3 :: Applicative m => (a -> b -> c -> value) -> m a -> m b -> m c -> m value
map3 func a b c =
pure func <*> a <*> b <*> c
-- |
map4 :: Applicative m => (a -> b -> c -> d -> value) -> m a -> m b -> m c -> m d -> m value
map4 func a b c d =
pure func <*> a <*> b <*> c <*> d
-- |
map5 :: Applicative m => (a -> b -> c -> d -> e -> value) -> m a -> m b -> m c -> m d -> m e -> m value
map5 func a b c d e =
pure func <*> a <*> b <*> c <*> d <*> e
-- |
map6 :: Applicative m => (a -> b -> c -> d -> e -> f -> value) -> m a -> m b -> m c -> m d -> m e -> m f -> m value
map6 func a b c d e f =
pure func <*> a <*> b <*> c <*> d <*> e <*> f
-- |
map7 :: Applicative m => (a -> b -> c -> d -> e -> f -> g -> value) -> m a -> m b -> m c -> m d -> m e -> m f -> m g -> m value
map7 func a b c d e f g =
pure func <*> a <*> b <*> c <*> d <*> e <*> f <*> g
-- |
map8 :: Applicative m => (a -> b -> c -> d -> e -> f -> g -> h -> value) -> m a -> m b -> m c -> m d -> m e -> m f -> m g -> m h -> m value
map8 func a b c d e f g h =
pure func <*> a <*> b <*> c <*> d <*> e <*> f <*> g <*> h
-- |
map9 :: Applicative m => (a -> b -> c -> d -> e -> f -> g -> h -> i -> value) -> m a -> m b -> m c -> m d -> m e -> m f -> m g -> m h -> m i -> m value
map9 func a b c d e f g h i =
pure func <*> a <*> b <*> c <*> d <*> e <*> f <*> g <*> h <*> i
-- |
andMap :: Applicative m => m a -> m (a -> b) -> m b
andMap m mf =
mf <*> m
-- |
blank :: Monad m => m ()
blank =
pure ()