data-foldapp-0.1.1.0: Fold function applications. Framework for variadic functions.

Data.FoldApp.Identity

Description

Specialised functions for folds of function applications. The converter has been specialised to the identity converter.

Synopsis

Documentation

type FoldlApp p r f = FoldlApp (~) p r f Source #

Data.FoldApp.FoldlApp with the identity converter chosen.

type FoldrApp p r f = FoldrApp (~) p r f Source #

Data.FoldApp.FoldrAPp with the identity converter chosen.

foldlApp :: forall p r f. FoldlApp p r f => (r -> p -> r) -> r -> f Source #

Left-associative fold of function applications.

foldlMApp :: forall m p r f. (Monad m, FoldlApp p (m r) f) => (r -> p -> m r) -> r -> f Source #

Monadic left-associative fold of function applications.

foldrApp :: forall p r f. FoldrApp p r f => (p -> r -> r) -> r -> f Source #

Right-associative fold of function applications.

foldrMApp :: forall m p r f. (Monad m, FoldrApp p (m r) f) => (p -> r -> m r) -> r -> f Source #

Monadic right-associative fold of function applications.

class Applicative m => Monad (m :: * -> *) #

The Monad class defines the basic operations over a monad, a concept from a branch of mathematics known as category theory. From the perspective of a Haskell programmer, however, it is best to think of a monad as an abstract datatype of actions. Haskell's do expressions provide a convenient syntax for writing monadic expressions.

Instances of Monad should satisfy the following laws:

Furthermore, the Monad and Applicative operations should relate as follows:

The above laws imply:

and that pure and (<*>) satisfy the applicative functor laws.

The instances of Monad for lists, Maybe and IO defined in the Prelude satisfy these laws.

Minimal complete definition

(>>=)

Instances