skulk-0.1.2.0: Eclectic collection of utility functions

Safe HaskellSafe
LanguageHaskell2010

Skulk.Deep

Description

Collection of convenience functions for dealing with nested applicativemonadicetc structures.

Synopsis

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.