| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.FoldApp.Generic
Description
The most generic definitions for folding function applications.
- class Converter conv where
- class (Converter conv, Infer conv p r f) => FoldlApp conv p r f where
- class (Converter conv, Infer conv p r f) => FoldrApp conv p r f
- class Applicative m => Monad m
- foldlMApp :: forall conv m p r f. (Monad m, FoldlApp conv p (m r) f) => (r -> p -> m r) -> r -> f
- foldrApp :: forall conv p r f. FoldrApp conv p r f => (p -> r -> r) -> r -> f
- foldrMApp :: forall conv m p r f. (Monad m, FoldrApp conv p (m r) f) => (p -> r -> m r) -> r -> f
Documentation
class Converter conv where Source #
Class of constraints which feature a function to convert a value of one type to a value of another.
Minimal complete definition
class (Converter conv, Infer conv p r f) => FoldlApp conv p r f where Source #
Class defining left-associative folds of function applications. No other instances need be defined.
Minimal complete definition
class (Converter conv, Infer conv p r f) => FoldrApp conv p r f Source #
Class defining right-associative folds of function applications. No other instances need be defined.
Minimal complete definition
foldrAppImpl
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
| Monad [] | |
| Monad Maybe | |
| Monad IO | |
| Monad U1 | |
| Monad Par1 | |
| Monad Identity | |
| Monad Min | |
| Monad Max | |
| Monad First | |
| Monad Last | |
| Monad Option | |
| Monad NonEmpty | |
| Monad Complex | |
| Monad Dual | |
| Monad Sum | |
| Monad Product | |
| Monad First | |
| Monad Last | |
| Monad Seq | |
| Monad ((->) r) | |
| Monad (Either e) | |
| Monad f => Monad (Rec1 f) | |
| Monoid a => Monad ((,) a) | |
| Monad m => Monad (WrappedMonad m) | |
| Monad (Proxy *) | |
| Monad (State s) | |
| (Monad f, Monad g) => Monad ((:*:) f g) | |
| Monad f => Monad (Alt * f) | |
| Monad f => Monad (M1 i c f) | |
foldlMApp :: forall conv m p r f. (Monad m, FoldlApp conv p (m r) f) => (r -> p -> m r) -> r -> f Source #
Monadic left-associative fold of function applications.