Copyright | (C) 2012-2015 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell98 |
- newtype Folding f a = Folding {
- getFolding :: f a
- newtype Traversed a f = Traversed {
- getTraversed :: f a
- newtype Sequenced a m = Sequenced {
- getSequenced :: m a
- data Max a
- getMax :: Max a -> Maybe a
- data Min a
- getMin :: Min a -> Maybe a
- data Leftmost a
- getLeftmost :: Leftmost a -> Maybe a
- data Rightmost a
- getRightmost :: Rightmost a -> Maybe a
- data ReifiedMonoid a = ReifiedMonoid {
- reifiedMappend :: a -> a -> a
- reifiedMempty :: a
- newtype M a s = M a
- reifyFold :: (a -> a -> a) -> a -> (forall s. Reifies s (ReifiedMonoid a) => t -> M a s) -> t -> a
Monoids for folding
A Monoid
for a Contravariant
Applicative
.
Folding | |
|
(Contravariant f, Applicative f) => Monoid (Folding f a) Source | |
(Contravariant f, Apply f) => Semigroup (Folding f a) Source | |
Used internally by traverseOf_
and the like.
The argument a
of the result should not be used!
Traversed | |
|
Used internally by mapM_
and the like.
The argument a
of the result should not be used!
Sequenced | |
|
Used for maximumOf
.
Used for minimumOf
.
Used for preview
.
getLeftmost :: Leftmost a -> Maybe a Source
Used for lastOf
.
getRightmost :: Rightmost a -> Maybe a Source
data ReifiedMonoid a Source
ReifiedMonoid | |
|
reifyFold :: (a -> a -> a) -> a -> (forall s. Reifies s (ReifiedMonoid a) => t -> M a s) -> t -> a Source