Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Collection of convenience functions for dealing with nested applicativemonadicetc structures.
- newtype Deep a b c = Deep {
- expose :: a (b c)
- wrap :: Monad a => b c -> Deep a b c
- inject :: (Functor a, Monad b) => a c -> Deep a b c
- eject :: Functor a => (b c -> c) -> Deep a b c -> a c
- reduceABA :: (Applicative a, Monad a, Traversable b) => a (b (a x)) -> a (b x)
- reduceBAB :: (Applicative a, Traversable b, Monad b) => b (a (b x)) -> a (b x)
- reduceABAB :: (Applicative a, Monad a, Traversable b, Monad b) => a (b (a (b x))) -> a (b x)
- reduceBABA :: (Applicative a, Monad a, Traversable b, Monad b) => b (a (b (a x))) -> a (b x)
- (<$$>) :: (Functor a, Functor b) => (x -> y) -> a (b x) -> a (b y)
- (>>>=) :: (Applicative a, Monad a, Traversable b, Monad b) => a (b x) -> (x -> a (b y)) -> a (b y)
- (>>==) :: (Functor a, Functor b, Monad b) => a (b x) -> (x -> b y) -> a (b y)
- (>=>=) :: (Applicative a, Monad a, Traversable b) => a (b x) -> (x -> a y) -> a (b y)
Documentation
reduceABA :: (Applicative a, Monad a, Traversable b) => a (b (a x)) -> a (b x) Source #
Reduces A (B (A x))
to A (B x)
.
reduceBAB :: (Applicative a, Traversable b, Monad b) => b (a (b x)) -> a (b x) Source #
Reduces B (A (B x))
to A (B x)
.
reduceABAB :: (Applicative a, Monad a, Traversable b, Monad b) => a (b (a (b x))) -> a (b x) Source #
Reduces A (B (A (B x)))
to A (B x)
.
reduceBABA :: (Applicative a, Monad a, Traversable b, Monad b) => b (a (b (a x))) -> a (b x) Source #
Reduces B (A (B (A x)))
to A (B x)
.
(<$$>) :: (Functor a, Functor b) => (x -> y) -> a (b x) -> a (b y) infixl 4 Source #
"Deep" fmap
for mapping over nested functors.
(>>>=) :: (Applicative a, Monad a, Traversable b, Monad b) => a (b x) -> (x -> a (b y)) -> a (b y) infixl 1 Source #
Variety of "deep bind" for chaining operations on nested data structures.
(>>==) :: (Functor a, Functor b, Monad b) => a (b x) -> (x -> b y) -> a (b y) infixl 1 Source #
Variety of "deep bind" for chaining operations on nested data structures.
(>=>=) :: (Applicative a, Monad a, Traversable b) => a (b x) -> (x -> a y) -> a (b y) infixl 1 Source #
Variety of "deep bind" for chaining operations on nested data structures.