Safe Haskell | Trustworthy |
---|---|
Language | Haskell2010 |
Control.Foldl
Description
This module provides efficient and streaming left folds that you can combine
using Applicative
style.
Import this module qualified to avoid clashing with the Prelude:
>>>
import qualified Control.Foldl as L
Use fold
to apply a Fold
to a list:
>>>
L.fold L.sum [1..100]
5050
Fold
s are Applicative
s, so you can combine them using Applicative
combinators:
>>>
import Control.Applicative
>>>
let average = (/) <$> L.sum <*> L.genericLength
Taking the sum, the sum of squares, ..., upto the sum of x^5
>>>
import Data.Traversable
>>>
let powerSums = sequenceA [L.premap (^n) L.sum | n <- [1..5]]
>>>
L.fold powerSums [1..10]
[55,385,3025,25333,220825]
These combined folds will still traverse the list only once, streaming efficiently over the list in constant space without space leaks:
>>>
L.fold average [1..10000000]
5000000.5>>>
L.fold ((,) <$> L.minimum <*> L.maximum) [1..10000000]
(Just 1,Just 10000000)
You might want to try enabling the -flate-dmd-anal
flag when compiling
executables that use this library to further improve performance.
Synopsis
- data Fold a b = forall x. Fold (x -> a -> x) x (x -> b)
- data FoldM m a b = forall x. FoldM (x -> a -> m x) (m x) (x -> m b)
- fold :: Foldable f => Fold a b -> f a -> b
- foldM :: (Foldable f, Monad m) => FoldM m a b -> f a -> m b
- scan :: Fold a b -> [a] -> [b]
- prescan :: Traversable t => Fold a b -> t a -> t b
- postscan :: Traversable t => Fold a b -> t a -> t b
- mconcat :: Monoid a => Fold a a
- foldMap :: Monoid w => (a -> w) -> (w -> b) -> Fold a b
- head :: Fold a (Maybe a)
- last :: Fold a (Maybe a)
- lastDef :: a -> Fold a a
- lastN :: Int -> Fold a [a]
- null :: Fold a Bool
- length :: Fold a Int
- and :: Fold Bool Bool
- or :: Fold Bool Bool
- all :: (a -> Bool) -> Fold a Bool
- any :: (a -> Bool) -> Fold a Bool
- sum :: Num a => Fold a a
- product :: Num a => Fold a a
- mean :: Fractional a => Fold a a
- variance :: Fractional a => Fold a a
- std :: Floating a => Fold a a
- maximum :: Ord a => Fold a (Maybe a)
- maximumBy :: (a -> a -> Ordering) -> Fold a (Maybe a)
- minimum :: Ord a => Fold a (Maybe a)
- minimumBy :: (a -> a -> Ordering) -> Fold a (Maybe a)
- elem :: Eq a => a -> Fold a Bool
- notElem :: Eq a => a -> Fold a Bool
- find :: (a -> Bool) -> Fold a (Maybe a)
- index :: Int -> Fold a (Maybe a)
- lookup :: Eq a => a -> Fold (a, b) (Maybe b)
- elemIndex :: Eq a => a -> Fold a (Maybe Int)
- findIndex :: (a -> Bool) -> Fold a (Maybe Int)
- random :: FoldM IO a (Maybe a)
- randomN :: Vector v a => Int -> FoldM IO a (Maybe (v a))
- mapM_ :: Monad m => (a -> m ()) -> FoldM m a ()
- sink :: (Monoid w, Monad m) => (a -> m w) -> FoldM m a w
- genericLength :: Num b => Fold a b
- genericIndex :: Integral i => i -> Fold a (Maybe a)
- list :: Fold a [a]
- revList :: Fold a [a]
- nub :: Ord a => Fold a [a]
- eqNub :: Eq a => Fold a [a]
- set :: Ord a => Fold a (Set a)
- hashSet :: (Eq a, Hashable a) => Fold a (HashSet a)
- map :: Ord a => Fold (a, b) (Map a b)
- foldByKeyMap :: forall k a b. Ord k => Fold a b -> Fold (k, a) (Map k b)
- hashMap :: (Eq a, Hashable a) => Fold (a, b) (HashMap a b)
- foldByKeyHashMap :: forall k a b. (Hashable k, Eq k) => Fold a b -> Fold (k, a) (HashMap k b)
- vector :: Vector v a => Fold a (v a)
- vectorM :: (PrimMonad m, Vector v a) => FoldM m a (v a)
- purely :: (forall x. (x -> a -> x) -> x -> (x -> b) -> r) -> Fold a b -> r
- purely_ :: (forall x. (x -> a -> x) -> x -> x) -> Fold a b -> b
- impurely :: (forall x. (x -> a -> m x) -> m x -> (x -> m b) -> r) -> FoldM m a b -> r
- impurely_ :: Monad m => (forall x. (x -> a -> m x) -> m x -> m x) -> FoldM m a b -> m b
- generalize :: Monad m => Fold a b -> FoldM m a b
- simplify :: FoldM Identity a b -> Fold a b
- hoists :: (forall x. m x -> n x) -> FoldM m a b -> FoldM n a b
- duplicateM :: Applicative m => FoldM m a b -> FoldM m a (FoldM m a b)
- _Fold1 :: (a -> a -> a) -> Fold a (Maybe a)
- premap :: (a -> b) -> Fold b r -> Fold a r
- premapM :: Monad m => (a -> m b) -> FoldM m b r -> FoldM m a r
- prefilter :: (a -> Bool) -> Fold a r -> Fold a r
- prefilterM :: Monad m => (a -> m Bool) -> FoldM m a r -> FoldM m a r
- predropWhile :: (a -> Bool) -> Fold a r -> Fold a r
- drop :: Natural -> Fold a b -> Fold a b
- dropM :: Monad m => Natural -> FoldM m a b -> FoldM m a b
- type Handler a b = forall x. (b -> Const (Dual (Endo x)) b) -> a -> Const (Dual (Endo x)) a
- handles :: Handler a b -> Fold b r -> Fold a r
- foldOver :: Handler s a -> Fold a b -> s -> b
- newtype EndoM m a = EndoM {
- appEndoM :: a -> m a
- type HandlerM m a b = forall x. (b -> Const (Dual (EndoM m x)) b) -> a -> Const (Dual (EndoM m x)) a
- handlesM :: HandlerM m a b -> FoldM m b r -> FoldM m a r
- foldOverM :: Monad m => HandlerM m s a -> FoldM m a b -> s -> m b
- folded :: (Contravariant f, Applicative f, Foldable t) => (a -> f a) -> t a -> f (t a)
- filtered :: Monoid m => (a -> Bool) -> (a -> m) -> a -> m
- groupBy :: Ord g => (a -> g) -> Fold a r -> Fold a (Map g r)
- either :: Fold a1 b1 -> Fold a2 b2 -> Fold (Either a1 a2) (b1, b2)
- eitherM :: Monad m => FoldM m a1 b1 -> FoldM m a2 b2 -> FoldM m (Either a1 a2) (b1, b2)
- nest :: Applicative f => Fold a b -> Fold (f a) (f b)
- data RealWorld
- class Monad m => PrimMonad (m :: Type -> Type)
- class Foldable (t :: Type -> Type)
- class MVector (Mutable v) a => Vector (v :: Type -> Type) a
- type family Mutable (v :: Type -> Type) = (mv :: Type -> Type -> Type) | mv -> v
Fold Types
Efficient representation of a left fold that preserves the fold's step function, initial accumulator, and extraction function
This allows the Applicative
instance to assemble derived folds that
traverse the container only once
A 'Fold
a b' processes elements of type a and results in a
value of type b.
Constructors
forall x. Fold (x -> a -> x) x (x -> b) |
|
Instances
Choice Fold Source # | |
Profunctor Fold Source # | |
Defined in Control.Foldl | |
Functor (Fold a) Source # | |
Applicative (Fold a) Source # | |
Comonad (Fold a) Source # | |
Extend (Fold a) Source # | |
Defined in Control.Foldl | |
Semigroupoid Fold Source # | |
Defined in Control.Foldl | |
Floating b => Floating (Fold a b) Source # | |
Fractional b => Fractional (Fold a b) Source # | |
Defined in Control.Foldl | |
Num b => Num (Fold a b) Source # | |
Semigroup b => Semigroup (Fold a b) Source # | |
Monoid b => Monoid (Fold a b) Source # | |
Like Fold
, but monadic.
A 'FoldM
m a b' processes elements of type a and
results in a monadic value of type m b.
Constructors
forall x. FoldM (x -> a -> m x) (m x) (x -> m b) |
|
Instances
Functor m => Profunctor (FoldM m) Source # | |
Defined in Control.Foldl Methods dimap :: (a -> b) -> (c -> d) -> FoldM m b c -> FoldM m a d lmap :: (a -> b) -> FoldM m b c -> FoldM m a c rmap :: (b -> c) -> FoldM m a b -> FoldM m a c (#.) :: forall a b c q. Coercible c b => q b c -> FoldM m a b -> FoldM m a c (.#) :: forall a b c q. Coercible b a => FoldM m b c -> q a b -> FoldM m a c | |
Functor m => Functor (FoldM m a) Source # | |
Applicative m => Applicative (FoldM m a) Source # | |
Monad m => Extend (FoldM m a) Source # | |
Defined in Control.Foldl | |
(Monad m, Floating b) => Floating (FoldM m a b) Source # | |
Defined in Control.Foldl Methods exp :: FoldM m a b -> FoldM m a b log :: FoldM m a b -> FoldM m a b sqrt :: FoldM m a b -> FoldM m a b (**) :: FoldM m a b -> FoldM m a b -> FoldM m a b logBase :: FoldM m a b -> FoldM m a b -> FoldM m a b sin :: FoldM m a b -> FoldM m a b cos :: FoldM m a b -> FoldM m a b tan :: FoldM m a b -> FoldM m a b asin :: FoldM m a b -> FoldM m a b acos :: FoldM m a b -> FoldM m a b atan :: FoldM m a b -> FoldM m a b sinh :: FoldM m a b -> FoldM m a b cosh :: FoldM m a b -> FoldM m a b tanh :: FoldM m a b -> FoldM m a b asinh :: FoldM m a b -> FoldM m a b acosh :: FoldM m a b -> FoldM m a b atanh :: FoldM m a b -> FoldM m a b log1p :: FoldM m a b -> FoldM m a b expm1 :: FoldM m a b -> FoldM m a b | |
(Monad m, Fractional b) => Fractional (FoldM m a b) Source # | |
Defined in Control.Foldl | |
(Monad m, Num b) => Num (FoldM m a b) Source # | |
Defined in Control.Foldl | |
(Semigroup b, Monad m) => Semigroup (FoldM m a b) Source # | |
(Monoid b, Monad m) => Monoid (FoldM m a b) Source # | |
Folding
scan :: Fold a b -> [a] -> [b] Source #
Convert a strict left Fold
into a scan
>>>
L.scan L.length [1..5]
[0,1,2,3,4,5]
prescan :: Traversable t => Fold a b -> t a -> t b Source #
Convert a Fold
into a prescan for any Traversable
type
"Prescan" means that the last element of the scan is not included
>>>
L.prescan L.length [1..5]
[0,1,2,3,4]
postscan :: Traversable t => Fold a b -> t a -> t b Source #
Convert a Fold
into a postscan for any Traversable
type
"Postscan" means that the first element of the scan is not included
>>>
L.postscan L.length [1..5]
[1,2,3,4,5]
Folds
head :: Fold a (Maybe a) Source #
Get the first element of a container or return Nothing
if the container is
empty
last :: Fold a (Maybe a) Source #
Get the last element of a container or return Nothing
if the container is
empty
lastDef :: a -> Fold a a Source #
Get the last element of a container or return a default value if the container is empty
all :: (a -> Bool) -> Fold a Bool Source #
(all predicate)
returns True
if all elements satisfy the predicate,
False
otherwise
any :: (a -> Bool) -> Fold a Bool Source #
(any predicate)
returns True
if any element satisfies the predicate,
False
otherwise
mean :: Fractional a => Fold a a Source #
Compute a numerically stable arithmetic mean of all elements
variance :: Fractional a => Fold a a Source #
Compute a numerically stable (population) variance over all elements
std :: Floating a => Fold a a Source #
Compute a numerically stable (population) standard deviation over all elements
maximumBy :: (a -> a -> Ordering) -> Fold a (Maybe a) Source #
Computes the maximum element with respect to the given comparison function
minimumBy :: (a -> a -> Ordering) -> Fold a (Maybe a) Source #
Computes the minimum element with respect to the given comparison function
elem :: Eq a => a -> Fold a Bool Source #
(elem a)
returns True
if the container has an element equal to a
,
False
otherwise
notElem :: Eq a => a -> Fold a Bool Source #
(notElem a)
returns False
if the container has an element equal to a
,
True
otherwise
find :: (a -> Bool) -> Fold a (Maybe a) Source #
(find predicate)
returns the first element that satisfies the predicate or
Nothing
if no element satisfies the predicate
index :: Int -> Fold a (Maybe a) Source #
(index n)
returns the n
th element of the container, or Nothing
if the
container has an insufficient number of elements
lookup :: Eq a => a -> Fold (a, b) (Maybe b) Source #
(lookup a)
returns the element paired with the first matching item, or
Nothing
if none matches
elemIndex :: Eq a => a -> Fold a (Maybe Int) Source #
(elemIndex a)
returns the index of the first element that equals a
, or
Nothing
if no element matches
findIndex :: (a -> Bool) -> Fold a (Maybe Int) Source #
(findIndex predicate)
returns the index of the first element that
satisfies the predicate, or Nothing
if no element satisfies the predicate
randomN :: Vector v a => Int -> FoldM IO a (Maybe (v a)) Source #
Pick several random elements, using reservoir sampling
mapM_ :: Monad m => (a -> m ()) -> FoldM m a () Source #
Converts an effectful function to a fold. Specialized version of sink
.
sink :: (Monoid w, Monad m) => (a -> m w) -> FoldM m a w Source #
Converts an effectful function to a fold
sink (f <> g) = sink f <> sink g -- if `(<>)` is commutative sink mempty = mempty
Generic Folds
genericLength :: Num b => Fold a b Source #
Like length
, except with a more general Num
return value
genericIndex :: Integral i => i -> Fold a (Maybe a) Source #
Like index
, except with a more general Integral
argument
Container folds
nub :: Ord a => Fold a [a] Source #
O(n log n). Fold values into a list with duplicates removed, while preserving their first occurrences
eqNub :: Eq a => Fold a [a] Source #
O(n^2). Fold values into a list with duplicates removed, while preserving their first occurrences
foldByKeyMap :: forall k a b. Ord k => Fold a b -> Fold (k, a) (Map k b) Source #
Given a Fold
, produces a Map
which applies that fold to each a
separated by key k
.
>>>
fold (foldByKeyMap Control.Foldl.sum) [("a",1), ("b",2), ("b",20), ("a",10)]
fromList [("a",11),("b",22)]
foldByKeyHashMap :: forall k a b. (Hashable k, Eq k) => Fold a b -> Fold (k, a) (HashMap k b) Source #
Given a Fold
, produces a HashMap
which applies that fold to each a
separated by key k
.
>>>
List.sort (HashMap.toList (fold (foldByKeyHashMap Control.Foldl.sum) [("a",1), ("b",2), ("b",20), ("a",10)]))
[("a",11),("b",22)]
vectorM :: (PrimMonad m, Vector v a) => FoldM m a (v a) Source #
Fold all values into a vector
This is more efficient than vector
but is impure
Utilities
purely
and impurely
allow you to write folds compatible with the foldl
library without incurring a foldl
dependency. Write your fold to accept
three parameters corresponding to the step function, initial
accumulator, and extraction function and then users can upgrade your
function to accept a Fold
or FoldM
using the purely
or impurely
combinators.
For example, the pipes
library implements fold
and foldM
functions in
Pipes.Prelude
with the following type:
Pipes.Prelude.fold :: Monad m -> (x -> a -> x) -> x -> (x -> b) -> Producer a m () -> m b Pipes.Prelude.foldM :: Monad m => (x -> a -> m x) -> m x -> (x -> m b) -> Producer a m () -> m b
Both fold
and foldM
is set up so that you can wrap them with either
purely
or impurely
to accept a Fold
or FoldM
, respectively:
purely Pipes.Prelude.fold :: Monad m => Fold a b -> Producer a m () -> m b impurely Pipes.Prelude.foldM :: Monad m => FoldM m a b -> Producer a m () -> m b
Other streaming libraries supporting purely
and impurely
include io-streams
and streaming
.
So for example we have:
purely System.IO.Streams.fold_ :: Fold a b -> Streams.InputStream a -> IO b impurely System.IO.Streams.foldM_ :: FoldM IO a b -> Streams.InputStream a -> IO b
The monotraversable
package makes it convenient to apply a
Fold
or FoldM
to pure containers that do not allow
a general Foldable
instance, like unboxed vectors:
purely ofoldlUnwrap :: MonoFoldable mono => Fold (Element mono) b -> mono -> b impurely ofoldMUnwrap :: MonoFoldable mono => FoldM m (Element mono) b -> mono -> m b
purely :: (forall x. (x -> a -> x) -> x -> (x -> b) -> r) -> Fold a b -> r Source #
Upgrade a fold to accept the Fold
type
purely_ :: (forall x. (x -> a -> x) -> x -> x) -> Fold a b -> b Source #
Upgrade a more traditional fold to accept the Fold
type
impurely :: (forall x. (x -> a -> m x) -> m x -> (x -> m b) -> r) -> FoldM m a b -> r Source #
Upgrade a monadic fold to accept the FoldM
type
impurely_ :: Monad m => (forall x. (x -> a -> m x) -> m x -> m x) -> FoldM m a b -> m b Source #
Upgrade a more traditional monadic fold to accept the FoldM
type
generalize :: Monad m => Fold a b -> FoldM m a b Source #
premap :: (a -> b) -> Fold b r -> Fold a r Source #
(premap f folder)
returns a new Fold
where f is applied at each step
fold (premap f folder) list = fold folder (List.map f list)
>>>
fold (premap Sum L.mconcat) [1..10]
Sum {getSum = 55}
>>>
fold L.mconcat (List.map Sum [1..10])
Sum {getSum = 55}
premap id = id premap (f . g) = premap g . premap f
premap k (pure r) = pure r premap k (f <*> x) = premap k f <*> premap k x
premapM :: Monad m => (a -> m b) -> FoldM m b r -> FoldM m a r Source #
(premapM f folder)
returns a new FoldM
where f is applied to each input
element
premapM return = id premapM (f <=< g) = premap g . premap f
premapM k (pure r) = pure r premapM k (f <*> x) = premapM k f <*> premapM k x
prefilter :: (a -> Bool) -> Fold a r -> Fold a r Source #
(prefilter f folder)
returns a new Fold
where the folder's input is used
only when the input satisfies a predicate f
This can also be done with handles
(handles (filtered f)
) but prefilter
does not need you to depend on a lens library.
fold (prefilter p folder) list = fold folder (filter p list)
>>>
fold (prefilter (>5) Control.Foldl.sum) [1..10]
40
>>>
fold Control.Foldl.sum (filter (>5) [1..10])
40
prefilterM :: Monad m => (a -> m Bool) -> FoldM m a r -> FoldM m a r Source #
(prefilterM f folder)
returns a new FoldM
where the folder's input is used
only when the input satisfies a monadic predicate f.
foldM (prefilterM p folder) list = foldM folder (filter p list)
predropWhile :: (a -> Bool) -> Fold a r -> Fold a r Source #
Transforms a Fold
into one which ignores elements
until they stop satisfying a predicate
fold (predropWhile p folder) list = fold folder (dropWhile p list)
>>>
fold (predropWhile (>5) Control.Foldl.sum) [10,9,5,9]
14
drop :: Natural -> Fold a b -> Fold a b Source #
(drop n folder)
returns a new Fold
that ignores the first n
inputs but
otherwise behaves the same as the original fold.
fold (drop n folder) list = fold folder (Data.List.genericDrop n list)
>>>
L.fold (L.drop 3 L.sum) [10, 20, 30, 1, 2, 3]
6
>>>
L.fold (L.drop 10 L.sum) [10, 20, 30, 1, 2, 3]
0
dropM :: Monad m => Natural -> FoldM m a b -> FoldM m a b Source #
(dropM n folder)
returns a new FoldM
that ignores the first n
inputs but
otherwise behaves the same as the original fold.
foldM (dropM n folder) list = foldM folder (Data.List.genericDrop n list)
>>>
L.foldM (L.dropM 3 (L.generalize L.sum)) [10, 20, 30, 1, 2, 3]
6
>>>
L.foldM (L.dropM 10 (L.generalize L.sum)) [10, 20, 30, 1, 2, 3]
0
type Handler a b = forall x. (b -> Const (Dual (Endo x)) b) -> a -> Const (Dual (Endo x)) a Source #
handles :: Handler a b -> Fold b r -> Fold a r Source #
(handles t folder)
transforms the input of a Fold
using a lens,
traversal, or prism:
handles _1 :: Fold a r -> Fold (a, b) r handles _Left :: Fold a r -> Fold (Either a b) r handles traverse :: Traversable t => Fold a r -> Fold (t a) r handles folded :: Foldable t => Fold a r -> Fold (t a) r
>>>
fold (handles traverse sum) [[1..5],[6..10]]
55
>>>
fold (handles (traverse.traverse) sum) [[Nothing, Just 2, Just 7],[Just 13, Nothing, Just 20]]
42
>>>
fold (handles (filtered even) sum) [1..10]
30
>>>
fold (handles _2 L.mconcat) [(1,"Hello "),(2,"World"),(3,"!")]
"Hello World!"
handles id = id handles (f . g) = handles f . handles g
handles t (pure r) = pure r handles t (f <*> x) = handles t f <*> handles t x
foldOver :: Handler s a -> Fold a b -> s -> b Source #
(foldOver f folder xs)
folds all values from a Lens, Traversal, Prism or Fold with the given folder
>>>
foldOver (_Just . both) L.sum (Just (2, 3))
5
>>>
foldOver (_Just . both) L.sum Nothing
0
L.foldOver f folder xs == L.fold folder (xs^..f)
L.foldOver (folded.f) folder == L.fold (handles f folder)
L.foldOver folded == L.fold
instance Monad m => Monoid (EndoM m a) where mempty = EndoM return mappend (EndoM f) (EndoM g) = EndoM (f <=< g)
type HandlerM m a b = forall x. (b -> Const (Dual (EndoM m x)) b) -> a -> Const (Dual (EndoM m x)) a Source #
handlesM :: HandlerM m a b -> FoldM m b r -> FoldM m a r Source #
(handlesM t folder)
transforms the input of a FoldM
using a lens,
traversal, or prism:
handlesM _1 :: FoldM m a r -> FoldM (a, b) r handlesM _Left :: FoldM m a r -> FoldM (Either a b) r handlesM traverse :: Traversable t => FoldM m a r -> FoldM m (t a) r handlesM folded :: Foldable t => FoldM m a r -> FoldM m (t a) r
handlesM
obeys these laws:
handlesM id = id handlesM (f . g) = handlesM f . handlesM g
handlesM t (pure r) = pure r handlesM t (f <*> x) = handlesM t f <*> handlesM t x
foldOverM :: Monad m => HandlerM m s a -> FoldM m a b -> s -> m b Source #
(foldOverM f folder xs)
folds all values from a Lens, Traversal, Prism or Fold monadically with the given folder
L.foldOverM (folded.f) folder == L.foldM (handlesM f folder)
L.foldOverM folded == L.foldM
folded :: (Contravariant f, Applicative f, Foldable t) => (a -> f a) -> t a -> f (t a) Source #
folded :: Foldable t => Fold (t a) a handles folded :: Foldable t => Fold a r -> Fold (t a) r
filtered :: Monoid m => (a -> Bool) -> (a -> m) -> a -> m Source #
>>>
fold (handles (filtered even) sum) [1..10]
30
>>>
foldM (handlesM (filtered even) (L.mapM_ print)) [1..10]
2 4 6 8 10
groupBy :: Ord g => (a -> g) -> Fold a r -> Fold a (Map g r) Source #
Perform a Fold
while grouping the data according to a specified group
projection function. Returns the folded result grouped as a map keyed by the
group.
either :: Fold a1 b1 -> Fold a2 b2 -> Fold (Either a1 a2) (b1, b2) Source #
Combine two folds into a fold over inputs for either of them.
eitherM :: Monad m => FoldM m a1 b1 -> FoldM m a2 b2 -> FoldM m (Either a1 a2) (b1, b2) Source #
Combine two monadic folds into a fold over inputs for either of them.
Re-exports
Control.Monad.Primitive
re-exports the PrimMonad
type class
Data.Foldable
re-exports the Foldable
type class
Data.Vector.Generic
re-exports the Vector
type class
class Monad m => PrimMonad (m :: Type -> Type) #
Minimal complete definition
primitive
Instances
PrimMonad IO | |
Defined in Control.Monad.Primitive Associated Types type PrimState IO Methods primitive :: (State# (PrimState IO) -> (# State# (PrimState IO), a #)) -> IO a | |
PrimMonad (ST s) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (ST s) Methods primitive :: (State# (PrimState (ST s)) -> (# State# (PrimState (ST s)), a #)) -> ST s a | |
PrimMonad (ST s) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (ST s) Methods primitive :: (State# (PrimState (ST s)) -> (# State# (PrimState (ST s)), a #)) -> ST s a | |
PrimMonad m => PrimMonad (ListT m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (ListT m) Methods primitive :: (State# (PrimState (ListT m)) -> (# State# (PrimState (ListT m)), a #)) -> ListT m a | |
PrimMonad m => PrimMonad (MaybeT m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (MaybeT m) Methods primitive :: (State# (PrimState (MaybeT m)) -> (# State# (PrimState (MaybeT m)), a #)) -> MaybeT m a | |
PrimMonad m => PrimMonad (IdentityT m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (IdentityT m) Methods primitive :: (State# (PrimState (IdentityT m)) -> (# State# (PrimState (IdentityT m)), a #)) -> IdentityT m a | |
(Error e, PrimMonad m) => PrimMonad (ErrorT e m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (ErrorT e m) Methods primitive :: (State# (PrimState (ErrorT e m)) -> (# State# (PrimState (ErrorT e m)), a #)) -> ErrorT e m a | |
(Monoid w, PrimMonad m) => PrimMonad (AccumT w m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (AccumT w m) Methods primitive :: (State# (PrimState (AccumT w m)) -> (# State# (PrimState (AccumT w m)), a #)) -> AccumT w m a | |
PrimMonad m => PrimMonad (ExceptT e m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (ExceptT e m) Methods primitive :: (State# (PrimState (ExceptT e m)) -> (# State# (PrimState (ExceptT e m)), a #)) -> ExceptT e m a | |
PrimMonad m => PrimMonad (ReaderT r m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (ReaderT r m) Methods primitive :: (State# (PrimState (ReaderT r m)) -> (# State# (PrimState (ReaderT r m)), a #)) -> ReaderT r m a | |
PrimMonad m => PrimMonad (SelectT r m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (SelectT r m) Methods primitive :: (State# (PrimState (SelectT r m)) -> (# State# (PrimState (SelectT r m)), a #)) -> SelectT r m a | |
PrimMonad m => PrimMonad (StateT s m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (StateT s m) Methods primitive :: (State# (PrimState (StateT s m)) -> (# State# (PrimState (StateT s m)), a #)) -> StateT s m a | |
PrimMonad m => PrimMonad (StateT s m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (StateT s m) Methods primitive :: (State# (PrimState (StateT s m)) -> (# State# (PrimState (StateT s m)), a #)) -> StateT s m a | |
(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (WriterT w m) Methods primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a | |
(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (WriterT w m) Methods primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a | |
(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (WriterT w m) Methods primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a | |
PrimMonad m => PrimMonad (ContT r m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (ContT r m) Methods primitive :: (State# (PrimState (ContT r m)) -> (# State# (PrimState (ContT r m)), a #)) -> ContT r m a | |
(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (RWST r w s m) Methods primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a | |
(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (RWST r w s m) Methods primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a | |
(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) | |
Defined in Control.Monad.Primitive Associated Types type PrimState (RWST r w s m) Methods primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a |
class Foldable (t :: Type -> Type) #
Minimal complete definition
foldMap | foldr
Instances
Foldable [] | |
Defined in Data.Foldable Methods fold :: Monoid m => [m] -> m foldMap :: Monoid m => (a -> m) -> [a] -> m foldMap' :: Monoid m => (a -> m) -> [a] -> m foldr :: (a -> b -> b) -> b -> [a] -> b foldr' :: (a -> b -> b) -> b -> [a] -> b foldl :: (b -> a -> b) -> b -> [a] -> b foldl' :: (b -> a -> b) -> b -> [a] -> b foldr1 :: (a -> a -> a) -> [a] -> a foldl1 :: (a -> a -> a) -> [a] -> a toList :: [a] -> [a] null :: [a] -> Bool length :: [a] -> Int elem :: Eq a => a -> [a] -> Bool maximum :: Ord a => [a] -> a minimum :: Ord a => [a] -> a sum :: Num a => [a] -> a product :: Num a => [a] -> a | |
Foldable Maybe | |
Defined in Data.Foldable Methods fold :: Monoid m => Maybe m -> m foldMap :: Monoid m => (a -> m) -> Maybe a -> m foldMap' :: Monoid m => (a -> m) -> Maybe a -> m foldr :: (a -> b -> b) -> b -> Maybe a -> b foldr' :: (a -> b -> b) -> b -> Maybe a -> b foldl :: (b -> a -> b) -> b -> Maybe a -> b foldl' :: (b -> a -> b) -> b -> Maybe a -> b foldr1 :: (a -> a -> a) -> Maybe a -> a foldl1 :: (a -> a -> a) -> Maybe a -> a toList :: Maybe a -> [a] null :: Maybe a -> Bool length :: Maybe a -> Int elem :: Eq a => a -> Maybe a -> Bool maximum :: Ord a => Maybe a -> a minimum :: Ord a => Maybe a -> a sum :: Num a => Maybe a -> a product :: Num a => Maybe a -> a | |
Foldable Par1 | |
Defined in Data.Foldable Methods fold :: Monoid m => Par1 m -> m foldMap :: Monoid m => (a -> m) -> Par1 a -> m foldMap' :: Monoid m => (a -> m) -> Par1 a -> m foldr :: (a -> b -> b) -> b -> Par1 a -> b foldr' :: (a -> b -> b) -> b -> Par1 a -> b foldl :: (b -> a -> b) -> b -> Par1 a -> b foldl' :: (b -> a -> b) -> b -> Par1 a -> b foldr1 :: (a -> a -> a) -> Par1 a -> a foldl1 :: (a -> a -> a) -> Par1 a -> a toList :: Par1 a -> [a] null :: Par1 a -> Bool length :: Par1 a -> Int elem :: Eq a => a -> Par1 a -> Bool maximum :: Ord a => Par1 a -> a minimum :: Ord a => Par1 a -> a sum :: Num a => Par1 a -> a product :: Num a => Par1 a -> a | |
Foldable NonEmpty | |
Defined in Data.Foldable Methods fold :: Monoid m => NonEmpty m -> m foldMap :: Monoid m => (a -> m) -> NonEmpty a -> m foldMap' :: Monoid m => (a -> m) -> NonEmpty a -> m foldr :: (a -> b -> b) -> b -> NonEmpty a -> b foldr' :: (a -> b -> b) -> b -> NonEmpty a -> b foldl :: (b -> a -> b) -> b -> NonEmpty a -> b foldl' :: (b -> a -> b) -> b -> NonEmpty a -> b foldr1 :: (a -> a -> a) -> NonEmpty a -> a foldl1 :: (a -> a -> a) -> NonEmpty a -> a toList :: NonEmpty a -> [a] null :: NonEmpty a -> Bool length :: NonEmpty a -> Int elem :: Eq a => a -> NonEmpty a -> Bool maximum :: Ord a => NonEmpty a -> a minimum :: Ord a => NonEmpty a -> a sum :: Num a => NonEmpty a -> a product :: Num a => NonEmpty a -> a | |
Foldable ZipList | |
Defined in Control.Applicative Methods fold :: Monoid m => ZipList m -> m foldMap :: Monoid m => (a -> m) -> ZipList a -> m foldMap' :: Monoid m => (a -> m) -> ZipList a -> m foldr :: (a -> b -> b) -> b -> ZipList a -> b foldr' :: (a -> b -> b) -> b -> ZipList a -> b foldl :: (b -> a -> b) -> b -> ZipList a -> b foldl' :: (b -> a -> b) -> b -> ZipList a -> b foldr1 :: (a -> a -> a) -> ZipList a -> a foldl1 :: (a -> a -> a) -> ZipList a -> a toList :: ZipList a -> [a] null :: ZipList a -> Bool length :: ZipList a -> Int elem :: Eq a => a -> ZipList a -> Bool maximum :: Ord a => ZipList a -> a minimum :: Ord a => ZipList a -> a sum :: Num a => ZipList a -> a product :: Num a => ZipList a -> a | |
Foldable Complex | |
Defined in Data.Complex Methods fold :: Monoid m => Complex m -> m foldMap :: Monoid m => (a -> m) -> Complex a -> m foldMap' :: Monoid m => (a -> m) -> Complex a -> m foldr :: (a -> b -> b) -> b -> Complex a -> b foldr' :: (a -> b -> b) -> b -> Complex a -> b foldl :: (b -> a -> b) -> b -> Complex a -> b foldl' :: (b -> a -> b) -> b -> Complex a -> b foldr1 :: (a -> a -> a) -> Complex a -> a foldl1 :: (a -> a -> a) -> Complex a -> a toList :: Complex a -> [a] null :: Complex a -> Bool length :: Complex a -> Int elem :: Eq a => a -> Complex a -> Bool maximum :: Ord a => Complex a -> a minimum :: Ord a => Complex a -> a sum :: Num a => Complex a -> a product :: Num a => Complex a -> a | |
Foldable Dual | |
Defined in Data.Foldable Methods fold :: Monoid m => Dual m -> m foldMap :: Monoid m => (a -> m) -> Dual a -> m foldMap' :: Monoid m => (a -> m) -> Dual a -> m foldr :: (a -> b -> b) -> b -> Dual a -> b foldr' :: (a -> b -> b) -> b -> Dual a -> b foldl :: (b -> a -> b) -> b -> Dual a -> b foldl' :: (b -> a -> b) -> b -> Dual a -> b foldr1 :: (a -> a -> a) -> Dual a -> a foldl1 :: (a -> a -> a) -> Dual a -> a toList :: Dual a -> [a] null :: Dual a -> Bool length :: Dual a -> Int elem :: Eq a => a -> Dual a -> Bool maximum :: Ord a => Dual a -> a minimum :: Ord a => Dual a -> a sum :: Num a => Dual a -> a product :: Num a => Dual a -> a | |
Foldable Product | |
Defined in Data.Foldable Methods fold :: Monoid m => Product m -> m foldMap :: Monoid m => (a -> m) -> Product a -> m foldMap' :: Monoid m => (a -> m) -> Product a -> m foldr :: (a -> b -> b) -> b -> Product a -> b foldr' :: (a -> b -> b) -> b -> Product a -> b foldl :: (b -> a -> b) -> b -> Product a -> b foldl' :: (b -> a -> b) -> b -> Product a -> b foldr1 :: (a -> a -> a) -> Product a -> a foldl1 :: (a -> a -> a) -> Product a -> a toList :: Product a -> [a] null :: Product a -> Bool length :: Product a -> Int elem :: Eq a => a -> Product a -> Bool maximum :: Ord a => Product a -> a minimum :: Ord a => Product a -> a sum :: Num a => Product a -> a product :: Num a => Product a -> a | |
Foldable Sum | |
Defined in Data.Foldable Methods fold :: Monoid m => Sum m -> m foldMap :: Monoid m => (a -> m) -> Sum a -> m foldMap' :: Monoid m => (a -> m) -> Sum a -> m foldr :: (a -> b -> b) -> b -> Sum a -> b foldr' :: (a -> b -> b) -> b -> Sum a -> b foldl :: (b -> a -> b) -> b -> Sum a -> b foldl' :: (b -> a -> b) -> b -> Sum a -> b foldr1 :: (a -> a -> a) -> Sum a -> a foldl1 :: (a -> a -> a) -> Sum a -> a toList :: Sum a -> [a] null :: Sum a -> Bool length :: Sum a -> Int elem :: Eq a => a -> Sum a -> Bool maximum :: Ord a => Sum a -> a minimum :: Ord a => Sum a -> a sum :: Num a => Sum a -> a product :: Num a => Sum a -> a | |
Foldable Identity | |
Defined in Data.Functor.Identity Methods fold :: Monoid m => Identity m -> m foldMap :: Monoid m => (a -> m) -> Identity a -> m foldMap' :: Monoid m => (a -> m) -> Identity a -> m foldr :: (a -> b -> b) -> b -> Identity a -> b foldr' :: (a -> b -> b) -> b -> Identity a -> b foldl :: (b -> a -> b) -> b -> Identity a -> b foldl' :: (b -> a -> b) -> b -> Identity a -> b foldr1 :: (a -> a -> a) -> Identity a -> a foldl1 :: (a -> a -> a) -> Identity a -> a toList :: Identity a -> [a] null :: Identity a -> Bool length :: Identity a -> Int elem :: Eq a => a -> Identity a -> Bool maximum :: Ord a => Identity a -> a minimum :: Ord a => Identity a -> a sum :: Num a => Identity a -> a product :: Num a => Identity a -> a | |
Foldable Tree | |
Defined in Data.Tree Methods fold :: Monoid m => Tree m -> m foldMap :: Monoid m => (a -> m) -> Tree a -> m foldMap' :: Monoid m => (a -> m) -> Tree a -> m foldr :: (a -> b -> b) -> b -> Tree a -> b foldr' :: (a -> b -> b) -> b -> Tree a -> b foldl :: (b -> a -> b) -> b -> Tree a -> b foldl' :: (b -> a -> b) -> b -> Tree a -> b foldr1 :: (a -> a -> a) -> Tree a -> a foldl1 :: (a -> a -> a) -> Tree a -> a toList :: Tree a -> [a] null :: Tree a -> Bool length :: Tree a -> Int elem :: Eq a => a -> Tree a -> Bool maximum :: Ord a => Tree a -> a minimum :: Ord a => Tree a -> a sum :: Num a => Tree a -> a product :: Num a => Tree a -> a | |
Foldable Down | |
Defined in Data.Foldable Methods fold :: Monoid m => Down m -> m foldMap :: Monoid m => (a -> m) -> Down a -> m foldMap' :: Monoid m => (a -> m) -> Down a -> m foldr :: (a -> b -> b) -> b -> Down a -> b foldr' :: (a -> b -> b) -> b -> Down a -> b foldl :: (b -> a -> b) -> b -> Down a -> b foldl' :: (b -> a -> b) -> b -> Down a -> b foldr1 :: (a -> a -> a) -> Down a -> a foldl1 :: (a -> a -> a) -> Down a -> a toList :: Down a -> [a] null :: Down a -> Bool length :: Down a -> Int elem :: Eq a => a -> Down a -> Bool maximum :: Ord a => Down a -> a minimum :: Ord a => Down a -> a sum :: Num a => Down a -> a product :: Num a => Down a -> a | |
Foldable First | |
Defined in Data.Foldable Methods fold :: Monoid m => First m -> m foldMap :: Monoid m => (a -> m) -> First a -> m foldMap' :: Monoid m => (a -> m) -> First a -> m foldr :: (a -> b -> b) -> b -> First a -> b foldr' :: (a -> b -> b) -> b -> First a -> b foldl :: (b -> a -> b) -> b -> First a -> b foldl' :: (b -> a -> b) -> b -> First a -> b foldr1 :: (a -> a -> a) -> First a -> a foldl1 :: (a -> a -> a) -> First a -> a toList :: First a -> [a] null :: First a -> Bool length :: First a -> Int elem :: Eq a => a -> First a -> Bool maximum :: Ord a => First a -> a minimum :: Ord a => First a -> a sum :: Num a => First a -> a product :: Num a => First a -> a | |
Foldable Last | |
Defined in Data.Foldable Methods fold :: Monoid m => Last m -> m foldMap :: Monoid m => (a -> m) -> Last a -> m foldMap' :: Monoid m => (a -> m) -> Last a -> m foldr :: (a -> b -> b) -> b -> Last a -> b foldr' :: (a -> b -> b) -> b -> Last a -> b foldl :: (b -> a -> b) -> b -> Last a -> b foldl' :: (b -> a -> b) -> b -> Last a -> b foldr1 :: (a -> a -> a) -> Last a -> a foldl1 :: (a -> a -> a) -> Last a -> a toList :: Last a -> [a] null :: Last a -> Bool length :: Last a -> Int elem :: Eq a => a -> Last a -> Bool maximum :: Ord a => Last a -> a minimum :: Ord a => Last a -> a sum :: Num a => Last a -> a product :: Num a => Last a -> a | |
Foldable First | |
Defined in Data.Semigroup Methods fold :: Monoid m => First m -> m foldMap :: Monoid m => (a -> m) -> First a -> m foldMap' :: Monoid m => (a -> m) -> First a -> m foldr :: (a -> b -> b) -> b -> First a -> b foldr' :: (a -> b -> b) -> b -> First a -> b foldl :: (b -> a -> b) -> b -> First a -> b foldl' :: (b -> a -> b) -> b -> First a -> b foldr1 :: (a -> a -> a) -> First a -> a foldl1 :: (a -> a -> a) -> First a -> a toList :: First a -> [a] null :: First a -> Bool length :: First a -> Int elem :: Eq a => a -> First a -> Bool maximum :: Ord a => First a -> a minimum :: Ord a => First a -> a sum :: Num a => First a -> a product :: Num a => First a -> a | |
Foldable Last | |
Defined in Data.Semigroup Methods fold :: Monoid m => Last m -> m foldMap :: Monoid m => (a -> m) -> Last a -> m foldMap' :: Monoid m => (a -> m) -> Last a -> m foldr :: (a -> b -> b) -> b -> Last a -> b foldr' :: (a -> b -> b) -> b -> Last a -> b foldl :: (b -> a -> b) -> b -> Last a -> b foldl' :: (b -> a -> b) -> b -> Last a -> b foldr1 :: (a -> a -> a) -> Last a -> a foldl1 :: (a -> a -> a) -> Last a -> a toList :: Last a -> [a] null :: Last a -> Bool length :: Last a -> Int elem :: Eq a => a -> Last a -> Bool maximum :: Ord a => Last a -> a minimum :: Ord a => Last a -> a sum :: Num a => Last a -> a product :: Num a => Last a -> a | |
Foldable Max | |
Defined in Data.Semigroup Methods fold :: Monoid m => Max m -> m foldMap :: Monoid m => (a -> m) -> Max a -> m foldMap' :: Monoid m => (a -> m) -> Max a -> m foldr :: (a -> b -> b) -> b -> Max a -> b foldr' :: (a -> b -> b) -> b -> Max a -> b foldl :: (b -> a -> b) -> b -> Max a -> b foldl' :: (b -> a -> b) -> b -> Max a -> b foldr1 :: (a -> a -> a) -> Max a -> a foldl1 :: (a -> a -> a) -> Max a -> a toList :: Max a -> [a] null :: Max a -> Bool length :: Max a -> Int elem :: Eq a => a -> Max a -> Bool maximum :: Ord a => Max a -> a minimum :: Ord a => Max a -> a sum :: Num a => Max a -> a product :: Num a => Max a -> a | |
Foldable Min | |
Defined in Data.Semigroup Methods fold :: Monoid m => Min m -> m foldMap :: Monoid m => (a -> m) -> Min a -> m foldMap' :: Monoid m => (a -> m) -> Min a -> m foldr :: (a -> b -> b) -> b -> Min a -> b foldr' :: (a -> b -> b) -> b -> Min a -> b foldl :: (b -> a -> b) -> b -> Min a -> b foldl' :: (b -> a -> b) -> b -> Min a -> b foldr1 :: (a -> a -> a) -> Min a -> a foldl1 :: (a -> a -> a) -> Min a -> a toList :: Min a -> [a] null :: Min a -> Bool length :: Min a -> Int elem :: Eq a => a -> Min a -> Bool maximum :: Ord a => Min a -> a minimum :: Ord a => Min a -> a sum :: Num a => Min a -> a product :: Num a => Min a -> a | |
Foldable Option | |
Defined in Data.Semigroup Methods fold :: Monoid m => Option m -> m foldMap :: Monoid m => (a -> m) -> Option a -> m foldMap' :: Monoid m => (a -> m) -> Option a -> m foldr :: (a -> b -> b) -> b -> Option a -> b foldr' :: (a -> b -> b) -> b -> Option a -> b foldl :: (b -> a -> b) -> b -> Option a -> b foldl' :: (b -> a -> b) -> b -> Option a -> b foldr1 :: (a -> a -> a) -> Option a -> a foldl1 :: (a -> a -> a) -> Option a -> a toList :: Option a -> [a] null :: Option a -> Bool length :: Option a -> Int elem :: Eq a => a -> Option a -> Bool maximum :: Ord a => Option a -> a minimum :: Ord a => Option a -> a sum :: Num a => Option a -> a product :: Num a => Option a -> a | |
Foldable Seq | |
Defined in Data.Sequence.Internal Methods fold :: Monoid m => Seq m -> m foldMap :: Monoid m => (a -> m) -> Seq a -> m foldMap' :: Monoid m => (a -> m) -> Seq a -> m foldr :: (a -> b -> b) -> b -> Seq a -> b foldr' :: (a -> b -> b) -> b -> Seq a -> b foldl :: (b -> a -> b) -> b -> Seq a -> b foldl' :: (b -> a -> b) -> b -> Seq a -> b foldr1 :: (a -> a -> a) -> Seq a -> a foldl1 :: (a -> a -> a) -> Seq a -> a toList :: Seq a -> [a] null :: Seq a -> Bool length :: Seq a -> Int elem :: Eq a => a -> Seq a -> Bool maximum :: Ord a => Seq a -> a minimum :: Ord a => Seq a -> a sum :: Num a => Seq a -> a product :: Num a => Seq a -> a | |
Foldable Elem | |
Defined in Data.Sequence.Internal Methods fold :: Monoid m => Elem m -> m foldMap :: Monoid m => (a -> m) -> Elem a -> m foldMap' :: Monoid m => (a -> m) -> Elem a -> m foldr :: (a -> b -> b) -> b -> Elem a -> b foldr' :: (a -> b -> b) -> b -> Elem a -> b foldl :: (b -> a -> b) -> b -> Elem a -> b foldl' :: (b -> a -> b) -> b -> Elem a -> b foldr1 :: (a -> a -> a) -> Elem a -> a foldl1 :: (a -> a -> a) -> Elem a -> a toList :: Elem a -> [a] null :: Elem a -> Bool length :: Elem a -> Int elem :: Eq a => a -> Elem a -> Bool maximum :: Ord a => Elem a -> a minimum :: Ord a => Elem a -> a sum :: Num a => Elem a -> a product :: Num a => Elem a -> a | |
Foldable ViewL | |
Defined in Data.Sequence.Internal Methods fold :: Monoid m => ViewL m -> m foldMap :: Monoid m => (a -> m) -> ViewL a -> m foldMap' :: Monoid m => (a -> m) -> ViewL a -> m foldr :: (a -> b -> b) -> b -> ViewL a -> b foldr' :: (a -> b -> b) -> b -> ViewL a -> b foldl :: (b -> a -> b) -> b -> ViewL a -> b foldl' :: (b -> a -> b) -> b -> ViewL a -> b foldr1 :: (a -> a -> a) -> ViewL a -> a foldl1 :: (a -> a -> a) -> ViewL a -> a toList :: ViewL a -> [a] null :: ViewL a -> Bool length :: ViewL a -> Int elem :: Eq a => a -> ViewL a -> Bool maximum :: Ord a => ViewL a -> a minimum :: Ord a => ViewL a -> a sum :: Num a => ViewL a -> a product :: Num a => ViewL a -> a | |
Foldable ViewR | |
Defined in Data.Sequence.Internal Methods fold :: Monoid m => ViewR m -> m foldMap :: Monoid m => (a -> m) -> ViewR a -> m foldMap' :: Monoid m => (a -> m) -> ViewR a -> m foldr :: (a -> b -> b) -> b -> ViewR a -> b foldr' :: (a -> b -> b) -> b -> ViewR a -> b foldl :: (b -> a -> b) -> b -> ViewR a -> b foldl' :: (b -> a -> b) -> b -> ViewR a -> b foldr1 :: (a -> a -> a) -> ViewR a -> a foldl1 :: (a -> a -> a) -> ViewR a -> a toList :: ViewR a -> [a] null :: ViewR a -> Bool length :: ViewR a -> Int elem :: Eq a => a -> ViewR a -> Bool maximum :: Ord a => ViewR a -> a minimum :: Ord a => ViewR a -> a sum :: Num a => ViewR a -> a product :: Num a => ViewR a -> a | |
Foldable Hashed | |
Defined in Data.Hashable.Class Methods fold :: Monoid m => Hashed m -> m foldMap :: Monoid m => (a -> m) -> Hashed a -> m foldMap' :: Monoid m => (a -> m) -> Hashed a -> m foldr :: (a -> b -> b) -> b -> Hashed a -> b foldr' :: (a -> b -> b) -> b -> Hashed a -> b foldl :: (b -> a -> b) -> b -> Hashed a -> b foldl' :: (b -> a -> b) -> b -> Hashed a -> b foldr1 :: (a -> a -> a) -> Hashed a -> a foldl1 :: (a -> a -> a) -> Hashed a -> a toList :: Hashed a -> [a] null :: Hashed a -> Bool length :: Hashed a -> Int elem :: Eq a => a -> Hashed a -> Bool maximum :: Ord a => Hashed a -> a minimum :: Ord a => Hashed a -> a sum :: Num a => Hashed a -> a product :: Num a => Hashed a -> a | |
Foldable Set | |
Defined in Data.Set.Internal Methods fold :: Monoid m => Set m -> m foldMap :: Monoid m => (a -> m) -> Set a -> m foldMap' :: Monoid m => (a -> m) -> Set a -> m foldr :: (a -> b -> b) -> b -> Set a -> b foldr' :: (a -> b -> b) -> b -> Set a -> b foldl :: (b -> a -> b) -> b -> Set a -> b foldl' :: (b -> a -> b) -> b -> Set a -> b foldr1 :: (a -> a -> a) -> Set a -> a foldl1 :: (a -> a -> a) -> Set a -> a toList :: Set a -> [a] null :: Set a -> Bool length :: Set a -> Int elem :: Eq a => a -> Set a -> Bool maximum :: Ord a => Set a -> a minimum :: Ord a => Set a -> a sum :: Num a => Set a -> a product :: Num a => Set a -> a | |
Foldable HashSet | |
Defined in Data.HashSet.Internal Methods fold :: Monoid m => HashSet m -> m foldMap :: Monoid m => (a -> m) -> HashSet a -> m foldMap' :: Monoid m => (a -> m) -> HashSet a -> m foldr :: (a -> b -> b) -> b -> HashSet a -> b foldr' :: (a -> b -> b) -> b -> HashSet a -> b foldl :: (b -> a -> b) -> b -> HashSet a -> b foldl' :: (b -> a -> b) -> b -> HashSet a -> b foldr1 :: (a -> a -> a) -> HashSet a -> a foldl1 :: (a -> a -> a) -> HashSet a -> a toList :: HashSet a -> [a] null :: HashSet a -> Bool length :: HashSet a -> Int elem :: Eq a => a -> HashSet a -> Bool maximum :: Ord a => HashSet a -> a minimum :: Ord a => HashSet a -> a sum :: Num a => HashSet a -> a product :: Num a => HashSet a -> a | |
Foldable Digit | |
Defined in Data.Sequence.Internal Methods fold :: Monoid m => Digit m -> m foldMap :: Monoid m => (a -> m) -> Digit a -> m foldMap' :: Monoid m => (a -> m) -> Digit a -> m foldr :: (a -> b -> b) -> b -> Digit a -> b foldr' :: (a -> b -> b) -> b -> Digit a -> b foldl :: (b -> a -> b) -> b -> Digit a -> b foldl' :: (b -> a -> b) -> b -> Digit a -> b foldr1 :: (a -> a -> a) -> Digit a -> a foldl1 :: (a -> a -> a) -> Digit a -> a toList :: Digit a -> [a] null :: Digit a -> Bool length :: Digit a -> Int elem :: Eq a => a -> Digit a -> Bool maximum :: Ord a => Digit a -> a minimum :: Ord a => Digit a -> a sum :: Num a => Digit a -> a product :: Num a => Digit a -> a | |
Foldable FingerTree | |
Defined in Data.Sequence.Internal Methods fold :: Monoid m => FingerTree m -> m foldMap :: Monoid m => (a -> m) -> FingerTree a -> m foldMap' :: Monoid m => (a -> m) -> FingerTree a -> m foldr :: (a -> b -> b) -> b -> FingerTree a -> b foldr' :: (a -> b -> b) -> b -> FingerTree a -> b foldl :: (b -> a -> b) -> b -> FingerTree a -> b foldl' :: (b -> a -> b) -> b -> FingerTree a -> b foldr1 :: (a -> a -> a) -> FingerTree a -> a foldl1 :: (a -> a -> a) -> FingerTree a -> a toList :: FingerTree a -> [a] null :: FingerTree a -> Bool length :: FingerTree a -> Int elem :: Eq a => a -> FingerTree a -> Bool maximum :: Ord a => FingerTree a -> a minimum :: Ord a => FingerTree a -> a sum :: Num a => FingerTree a -> a product :: Num a => FingerTree a -> a | |
Foldable Node | |
Defined in Data.Sequence.Internal Methods fold :: Monoid m => Node m -> m foldMap :: Monoid m => (a -> m) -> Node a -> m foldMap' :: Monoid m => (a -> m) -> Node a -> m foldr :: (a -> b -> b) -> b -> Node a -> b foldr' :: (a -> b -> b) -> b -> Node a -> b foldl :: (b -> a -> b) -> b -> Node a -> b foldl' :: (b -> a -> b) -> b -> Node a -> b foldr1 :: (a -> a -> a) -> Node a -> a foldl1 :: (a -> a -> a) -> Node a -> a toList :: Node a -> [a] null :: Node a -> Bool length :: Node a -> Int elem :: Eq a => a -> Node a -> Bool maximum :: Ord a => Node a -> a minimum :: Ord a => Node a -> a sum :: Num a => Node a -> a product :: Num a => Node a -> a | |
Foldable IntMap | |
Defined in Data.IntMap.Internal Methods fold :: Monoid m => IntMap m -> m foldMap :: Monoid m => (a -> m) -> IntMap a -> m foldMap' :: Monoid m => (a -> m) -> IntMap a -> m foldr :: (a -> b -> b) -> b -> IntMap a -> b foldr' :: (a -> b -> b) -> b -> IntMap a -> b foldl :: (b -> a -> b) -> b -> IntMap a -> b foldl' :: (b -> a -> b) -> b -> IntMap a -> b foldr1 :: (a -> a -> a) -> IntMap a -> a foldl1 :: (a -> a -> a) -> IntMap a -> a toList :: IntMap a -> [a] null :: IntMap a -> Bool length :: IntMap a -> Int elem :: Eq a => a -> IntMap a -> Bool maximum :: Ord a => IntMap a -> a minimum :: Ord a => IntMap a -> a sum :: Num a => IntMap a -> a product :: Num a => IntMap a -> a | |
Foldable (Either a) | |
Defined in Data.Foldable Methods fold :: Monoid m => Either a m -> m foldMap :: Monoid m => (a0 -> m) -> Either a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Either a a0 -> m foldr :: (a0 -> b -> b) -> b -> Either a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Either a a0 -> b foldl :: (b -> a0 -> b) -> b -> Either a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Either a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Either a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Either a a0 -> a0 toList :: Either a a0 -> [a0] null :: Either a a0 -> Bool length :: Either a a0 -> Int elem :: Eq a0 => a0 -> Either a a0 -> Bool maximum :: Ord a0 => Either a a0 -> a0 minimum :: Ord a0 => Either a a0 -> a0 sum :: Num a0 => Either a a0 -> a0 product :: Num a0 => Either a a0 -> a0 | |
Foldable (V1 :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => V1 m -> m foldMap :: Monoid m => (a -> m) -> V1 a -> m foldMap' :: Monoid m => (a -> m) -> V1 a -> m foldr :: (a -> b -> b) -> b -> V1 a -> b foldr' :: (a -> b -> b) -> b -> V1 a -> b foldl :: (b -> a -> b) -> b -> V1 a -> b foldl' :: (b -> a -> b) -> b -> V1 a -> b foldr1 :: (a -> a -> a) -> V1 a -> a foldl1 :: (a -> a -> a) -> V1 a -> a toList :: V1 a -> [a] null :: V1 a -> Bool length :: V1 a -> Int elem :: Eq a => a -> V1 a -> Bool maximum :: Ord a => V1 a -> a minimum :: Ord a => V1 a -> a sum :: Num a => V1 a -> a product :: Num a => V1 a -> a | |
Foldable (U1 :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => U1 m -> m foldMap :: Monoid m => (a -> m) -> U1 a -> m foldMap' :: Monoid m => (a -> m) -> U1 a -> m foldr :: (a -> b -> b) -> b -> U1 a -> b foldr' :: (a -> b -> b) -> b -> U1 a -> b foldl :: (b -> a -> b) -> b -> U1 a -> b foldl' :: (b -> a -> b) -> b -> U1 a -> b foldr1 :: (a -> a -> a) -> U1 a -> a foldl1 :: (a -> a -> a) -> U1 a -> a toList :: U1 a -> [a] null :: U1 a -> Bool length :: U1 a -> Int elem :: Eq a => a -> U1 a -> Bool maximum :: Ord a => U1 a -> a minimum :: Ord a => U1 a -> a sum :: Num a => U1 a -> a product :: Num a => U1 a -> a | |
Foldable (UAddr :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UAddr m -> m foldMap :: Monoid m => (a -> m) -> UAddr a -> m foldMap' :: Monoid m => (a -> m) -> UAddr a -> m foldr :: (a -> b -> b) -> b -> UAddr a -> b foldr' :: (a -> b -> b) -> b -> UAddr a -> b foldl :: (b -> a -> b) -> b -> UAddr a -> b foldl' :: (b -> a -> b) -> b -> UAddr a -> b foldr1 :: (a -> a -> a) -> UAddr a -> a foldl1 :: (a -> a -> a) -> UAddr a -> a toList :: UAddr a -> [a] null :: UAddr a -> Bool length :: UAddr a -> Int elem :: Eq a => a -> UAddr a -> Bool maximum :: Ord a => UAddr a -> a minimum :: Ord a => UAddr a -> a sum :: Num a => UAddr a -> a product :: Num a => UAddr a -> a | |
Foldable (UChar :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UChar m -> m foldMap :: Monoid m => (a -> m) -> UChar a -> m foldMap' :: Monoid m => (a -> m) -> UChar a -> m foldr :: (a -> b -> b) -> b -> UChar a -> b foldr' :: (a -> b -> b) -> b -> UChar a -> b foldl :: (b -> a -> b) -> b -> UChar a -> b foldl' :: (b -> a -> b) -> b -> UChar a -> b foldr1 :: (a -> a -> a) -> UChar a -> a foldl1 :: (a -> a -> a) -> UChar a -> a toList :: UChar a -> [a] null :: UChar a -> Bool length :: UChar a -> Int elem :: Eq a => a -> UChar a -> Bool maximum :: Ord a => UChar a -> a minimum :: Ord a => UChar a -> a sum :: Num a => UChar a -> a product :: Num a => UChar a -> a | |
Foldable (UDouble :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UDouble m -> m foldMap :: Monoid m => (a -> m) -> UDouble a -> m foldMap' :: Monoid m => (a -> m) -> UDouble a -> m foldr :: (a -> b -> b) -> b -> UDouble a -> b foldr' :: (a -> b -> b) -> b -> UDouble a -> b foldl :: (b -> a -> b) -> b -> UDouble a -> b foldl' :: (b -> a -> b) -> b -> UDouble a -> b foldr1 :: (a -> a -> a) -> UDouble a -> a foldl1 :: (a -> a -> a) -> UDouble a -> a toList :: UDouble a -> [a] null :: UDouble a -> Bool length :: UDouble a -> Int elem :: Eq a => a -> UDouble a -> Bool maximum :: Ord a => UDouble a -> a minimum :: Ord a => UDouble a -> a sum :: Num a => UDouble a -> a product :: Num a => UDouble a -> a | |
Foldable (UFloat :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UFloat m -> m foldMap :: Monoid m => (a -> m) -> UFloat a -> m foldMap' :: Monoid m => (a -> m) -> UFloat a -> m foldr :: (a -> b -> b) -> b -> UFloat a -> b foldr' :: (a -> b -> b) -> b -> UFloat a -> b foldl :: (b -> a -> b) -> b -> UFloat a -> b foldl' :: (b -> a -> b) -> b -> UFloat a -> b foldr1 :: (a -> a -> a) -> UFloat a -> a foldl1 :: (a -> a -> a) -> UFloat a -> a toList :: UFloat a -> [a] null :: UFloat a -> Bool length :: UFloat a -> Int elem :: Eq a => a -> UFloat a -> Bool maximum :: Ord a => UFloat a -> a minimum :: Ord a => UFloat a -> a sum :: Num a => UFloat a -> a product :: Num a => UFloat a -> a | |
Foldable (UInt :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UInt m -> m foldMap :: Monoid m => (a -> m) -> UInt a -> m foldMap' :: Monoid m => (a -> m) -> UInt a -> m foldr :: (a -> b -> b) -> b -> UInt a -> b foldr' :: (a -> b -> b) -> b -> UInt a -> b foldl :: (b -> a -> b) -> b -> UInt a -> b foldl' :: (b -> a -> b) -> b -> UInt a -> b foldr1 :: (a -> a -> a) -> UInt a -> a foldl1 :: (a -> a -> a) -> UInt a -> a toList :: UInt a -> [a] null :: UInt a -> Bool length :: UInt a -> Int elem :: Eq a => a -> UInt a -> Bool maximum :: Ord a => UInt a -> a minimum :: Ord a => UInt a -> a sum :: Num a => UInt a -> a product :: Num a => UInt a -> a | |
Foldable (UWord :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UWord m -> m foldMap :: Monoid m => (a -> m) -> UWord a -> m foldMap' :: Monoid m => (a -> m) -> UWord a -> m foldr :: (a -> b -> b) -> b -> UWord a -> b foldr' :: (a -> b -> b) -> b -> UWord a -> b foldl :: (b -> a -> b) -> b -> UWord a -> b foldl' :: (b -> a -> b) -> b -> UWord a -> b foldr1 :: (a -> a -> a) -> UWord a -> a foldl1 :: (a -> a -> a) -> UWord a -> a toList :: UWord a -> [a] null :: UWord a -> Bool length :: UWord a -> Int elem :: Eq a => a -> UWord a -> Bool maximum :: Ord a => UWord a -> a minimum :: Ord a => UWord a -> a sum :: Num a => UWord a -> a product :: Num a => UWord a -> a | |
Foldable ((,) a) | |
Defined in Data.Foldable Methods fold :: Monoid m => (a, m) -> m foldMap :: Monoid m => (a0 -> m) -> (a, a0) -> m foldMap' :: Monoid m => (a0 -> m) -> (a, a0) -> m foldr :: (a0 -> b -> b) -> b -> (a, a0) -> b foldr' :: (a0 -> b -> b) -> b -> (a, a0) -> b foldl :: (b -> a0 -> b) -> b -> (a, a0) -> b foldl' :: (b -> a0 -> b) -> b -> (a, a0) -> b foldr1 :: (a0 -> a0 -> a0) -> (a, a0) -> a0 foldl1 :: (a0 -> a0 -> a0) -> (a, a0) -> a0 toList :: (a, a0) -> [a0] null :: (a, a0) -> Bool length :: (a, a0) -> Int elem :: Eq a0 => a0 -> (a, a0) -> Bool maximum :: Ord a0 => (a, a0) -> a0 minimum :: Ord a0 => (a, a0) -> a0 sum :: Num a0 => (a, a0) -> a0 product :: Num a0 => (a, a0) -> a0 | |
Foldable (Array i) | |
Defined in Data.Foldable Methods fold :: Monoid m => Array i m -> m foldMap :: Monoid m => (a -> m) -> Array i a -> m foldMap' :: Monoid m => (a -> m) -> Array i a -> m foldr :: (a -> b -> b) -> b -> Array i a -> b foldr' :: (a -> b -> b) -> b -> Array i a -> b foldl :: (b -> a -> b) -> b -> Array i a -> b foldl' :: (b -> a -> b) -> b -> Array i a -> b foldr1 :: (a -> a -> a) -> Array i a -> a foldl1 :: (a -> a -> a) -> Array i a -> a toList :: Array i a -> [a] null :: Array i a -> Bool length :: Array i a -> Int elem :: Eq a => a -> Array i a -> Bool maximum :: Ord a => Array i a -> a minimum :: Ord a => Array i a -> a sum :: Num a => Array i a -> a product :: Num a => Array i a -> a | |
Foldable (Proxy :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => Proxy m -> m foldMap :: Monoid m => (a -> m) -> Proxy a -> m foldMap' :: Monoid m => (a -> m) -> Proxy a -> m foldr :: (a -> b -> b) -> b -> Proxy a -> b foldr' :: (a -> b -> b) -> b -> Proxy a -> b foldl :: (b -> a -> b) -> b -> Proxy a -> b foldl' :: (b -> a -> b) -> b -> Proxy a -> b foldr1 :: (a -> a -> a) -> Proxy a -> a foldl1 :: (a -> a -> a) -> Proxy a -> a toList :: Proxy a -> [a] null :: Proxy a -> Bool length :: Proxy a -> Int elem :: Eq a => a -> Proxy a -> Bool maximum :: Ord a => Proxy a -> a minimum :: Ord a => Proxy a -> a sum :: Num a => Proxy a -> a product :: Num a => Proxy a -> a | |
Foldable (Arg a) | |
Defined in Data.Semigroup Methods fold :: Monoid m => Arg a m -> m foldMap :: Monoid m => (a0 -> m) -> Arg a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Arg a a0 -> m foldr :: (a0 -> b -> b) -> b -> Arg a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Arg a a0 -> b foldl :: (b -> a0 -> b) -> b -> Arg a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Arg a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 toList :: Arg a a0 -> [a0] null :: Arg a a0 -> Bool length :: Arg a a0 -> Int elem :: Eq a0 => a0 -> Arg a a0 -> Bool maximum :: Ord a0 => Arg a a0 -> a0 minimum :: Ord a0 => Arg a a0 -> a0 sum :: Num a0 => Arg a a0 -> a0 product :: Num a0 => Arg a a0 -> a0 | |
Foldable f => Foldable (ListT f) | |
Defined in Control.Monad.Trans.List Methods fold :: Monoid m => ListT f m -> m foldMap :: Monoid m => (a -> m) -> ListT f a -> m foldMap' :: Monoid m => (a -> m) -> ListT f a -> m foldr :: (a -> b -> b) -> b -> ListT f a -> b foldr' :: (a -> b -> b) -> b -> ListT f a -> b foldl :: (b -> a -> b) -> b -> ListT f a -> b foldl' :: (b -> a -> b) -> b -> ListT f a -> b foldr1 :: (a -> a -> a) -> ListT f a -> a foldl1 :: (a -> a -> a) -> ListT f a -> a toList :: ListT f a -> [a] null :: ListT f a -> Bool length :: ListT f a -> Int elem :: Eq a => a -> ListT f a -> Bool maximum :: Ord a => ListT f a -> a minimum :: Ord a => ListT f a -> a sum :: Num a => ListT f a -> a product :: Num a => ListT f a -> a | |
Foldable f => Foldable (MaybeT f) | |
Defined in Control.Monad.Trans.Maybe Methods fold :: Monoid m => MaybeT f m -> m foldMap :: Monoid m => (a -> m) -> MaybeT f a -> m foldMap' :: Monoid m => (a -> m) -> MaybeT f a -> m foldr :: (a -> b -> b) -> b -> MaybeT f a -> b foldr' :: (a -> b -> b) -> b -> MaybeT f a -> b foldl :: (b -> a -> b) -> b -> MaybeT f a -> b foldl' :: (b -> a -> b) -> b -> MaybeT f a -> b foldr1 :: (a -> a -> a) -> MaybeT f a -> a foldl1 :: (a -> a -> a) -> MaybeT f a -> a toList :: MaybeT f a -> [a] null :: MaybeT f a -> Bool length :: MaybeT f a -> Int elem :: Eq a => a -> MaybeT f a -> Bool maximum :: Ord a => MaybeT f a -> a minimum :: Ord a => MaybeT f a -> a sum :: Num a => MaybeT f a -> a product :: Num a => MaybeT f a -> a | |
Foldable (HashMap k) | |
Defined in Data.HashMap.Internal Methods fold :: Monoid m => HashMap k m -> m foldMap :: Monoid m => (a -> m) -> HashMap k a -> m foldMap' :: Monoid m => (a -> m) -> HashMap k a -> m foldr :: (a -> b -> b) -> b -> HashMap k a -> b foldr' :: (a -> b -> b) -> b -> HashMap k a -> b foldl :: (b -> a -> b) -> b -> HashMap k a -> b foldl' :: (b -> a -> b) -> b -> HashMap k a -> b foldr1 :: (a -> a -> a) -> HashMap k a -> a foldl1 :: (a -> a -> a) -> HashMap k a -> a toList :: HashMap k a -> [a] null :: HashMap k a -> Bool length :: HashMap k a -> Int elem :: Eq a => a -> HashMap k a -> Bool maximum :: Ord a => HashMap k a -> a minimum :: Ord a => HashMap k a -> a sum :: Num a => HashMap k a -> a product :: Num a => HashMap k a -> a | |
Foldable (Map k) | |
Defined in Data.Map.Internal Methods fold :: Monoid m => Map k m -> m foldMap :: Monoid m => (a -> m) -> Map k a -> m foldMap' :: Monoid m => (a -> m) -> Map k a -> m foldr :: (a -> b -> b) -> b -> Map k a -> b foldr' :: (a -> b -> b) -> b -> Map k a -> b foldl :: (b -> a -> b) -> b -> Map k a -> b foldl' :: (b -> a -> b) -> b -> Map k a -> b foldr1 :: (a -> a -> a) -> Map k a -> a foldl1 :: (a -> a -> a) -> Map k a -> a toList :: Map k a -> [a] null :: Map k a -> Bool length :: Map k a -> Int elem :: Eq a => a -> Map k a -> Bool maximum :: Ord a => Map k a -> a minimum :: Ord a => Map k a -> a sum :: Num a => Map k a -> a product :: Num a => Map k a -> a | |
Foldable f => Foldable (Rec1 f) | |
Defined in Data.Foldable Methods fold :: Monoid m => Rec1 f m -> m foldMap :: Monoid m => (a -> m) -> Rec1 f a -> m foldMap' :: Monoid m => (a -> m) -> Rec1 f a -> m foldr :: (a -> b -> b) -> b -> Rec1 f a -> b foldr' :: (a -> b -> b) -> b -> Rec1 f a -> b foldl :: (b -> a -> b) -> b -> Rec1 f a -> b foldl' :: (b -> a -> b) -> b -> Rec1 f a -> b foldr1 :: (a -> a -> a) -> Rec1 f a -> a foldl1 :: (a -> a -> a) -> Rec1 f a -> a toList :: Rec1 f a -> [a] null :: Rec1 f a -> Bool length :: Rec1 f a -> Int elem :: Eq a => a -> Rec1 f a -> Bool maximum :: Ord a => Rec1 f a -> a minimum :: Ord a => Rec1 f a -> a sum :: Num a => Rec1 f a -> a product :: Num a => Rec1 f a -> a | |
Foldable (Const m :: Type -> Type) | |
Defined in Data.Functor.Const Methods fold :: Monoid m0 => Const m m0 -> m0 foldMap :: Monoid m0 => (a -> m0) -> Const m a -> m0 foldMap' :: Monoid m0 => (a -> m0) -> Const m a -> m0 foldr :: (a -> b -> b) -> b -> Const m a -> b foldr' :: (a -> b -> b) -> b -> Const m a -> b foldl :: (b -> a -> b) -> b -> Const m a -> b foldl' :: (b -> a -> b) -> b -> Const m a -> b foldr1 :: (a -> a -> a) -> Const m a -> a foldl1 :: (a -> a -> a) -> Const m a -> a toList :: Const m a -> [a] null :: Const m a -> Bool length :: Const m a -> Int elem :: Eq a => a -> Const m a -> Bool maximum :: Ord a => Const m a -> a minimum :: Ord a => Const m a -> a sum :: Num a => Const m a -> a product :: Num a => Const m a -> a | |
Foldable (Tagged s) | |
Defined in Data.Tagged Methods fold :: Monoid m => Tagged s m -> m foldMap :: Monoid m => (a -> m) -> Tagged s a -> m foldMap' :: Monoid m => (a -> m) -> Tagged s a -> m foldr :: (a -> b -> b) -> b -> Tagged s a -> b foldr' :: (a -> b -> b) -> b -> Tagged s a -> b foldl :: (b -> a -> b) -> b -> Tagged s a -> b foldl' :: (b -> a -> b) -> b -> Tagged s a -> b foldr1 :: (a -> a -> a) -> Tagged s a -> a foldl1 :: (a -> a -> a) -> Tagged s a -> a toList :: Tagged s a -> [a] null :: Tagged s a -> Bool length :: Tagged s a -> Int elem :: Eq a => a -> Tagged s a -> Bool maximum :: Ord a => Tagged s a -> a minimum :: Ord a => Tagged s a -> a sum :: Num a => Tagged s a -> a product :: Num a => Tagged s a -> a | |
Foldable f => Foldable (IdentityT f) | |
Defined in Control.Monad.Trans.Identity Methods fold :: Monoid m => IdentityT f m -> m foldMap :: Monoid m => (a -> m) -> IdentityT f a -> m foldMap' :: Monoid m => (a -> m) -> IdentityT f a -> m foldr :: (a -> b -> b) -> b -> IdentityT f a -> b foldr' :: (a -> b -> b) -> b -> IdentityT f a -> b foldl :: (b -> a -> b) -> b -> IdentityT f a -> b foldl' :: (b -> a -> b) -> b -> IdentityT f a -> b foldr1 :: (a -> a -> a) -> IdentityT f a -> a foldl1 :: (a -> a -> a) -> IdentityT f a -> a toList :: IdentityT f a -> [a] null :: IdentityT f a -> Bool length :: IdentityT f a -> Int elem :: Eq a => a -> IdentityT f a -> Bool maximum :: Ord a => IdentityT f a -> a minimum :: Ord a => IdentityT f a -> a sum :: Num a => IdentityT f a -> a product :: Num a => IdentityT f a -> a | |
Foldable f => Foldable (ErrorT e f) | |
Defined in Control.Monad.Trans.Error Methods fold :: Monoid m => ErrorT e f m -> m foldMap :: Monoid m => (a -> m) -> ErrorT e f a -> m foldMap' :: Monoid m => (a -> m) -> ErrorT e f a -> m foldr :: (a -> b -> b) -> b -> ErrorT e f a -> b foldr' :: (a -> b -> b) -> b -> ErrorT e f a -> b foldl :: (b -> a -> b) -> b -> ErrorT e f a -> b foldl' :: (b -> a -> b) -> b -> ErrorT e f a -> b foldr1 :: (a -> a -> a) -> ErrorT e f a -> a foldl1 :: (a -> a -> a) -> ErrorT e f a -> a toList :: ErrorT e f a -> [a] null :: ErrorT e f a -> Bool length :: ErrorT e f a -> Int elem :: Eq a => a -> ErrorT e f a -> Bool maximum :: Ord a => ErrorT e f a -> a minimum :: Ord a => ErrorT e f a -> a sum :: Num a => ErrorT e f a -> a product :: Num a => ErrorT e f a -> a | |
Foldable f => Foldable (ExceptT e f) | |
Defined in Control.Monad.Trans.Except Methods fold :: Monoid m => ExceptT e f m -> m foldMap :: Monoid m => (a -> m) -> ExceptT e f a -> m foldMap' :: Monoid m => (a -> m) -> ExceptT e f a -> m foldr :: (a -> b -> b) -> b -> ExceptT e f a -> b foldr' :: (a -> b -> b) -> b -> ExceptT e f a -> b foldl :: (b -> a -> b) -> b -> ExceptT e f a -> b foldl' :: (b -> a -> b) -> b -> ExceptT e f a -> b foldr1 :: (a -> a -> a) -> ExceptT e f a -> a foldl1 :: (a -> a -> a) -> ExceptT e f a -> a toList :: ExceptT e f a -> [a] null :: ExceptT e f a -> Bool length :: ExceptT e f a -> Int elem :: Eq a => a -> ExceptT e f a -> Bool maximum :: Ord a => ExceptT e f a -> a minimum :: Ord a => ExceptT e f a -> a sum :: Num a => ExceptT e f a -> a product :: Num a => ExceptT e f a -> a | |
Foldable f => Foldable (WriterT w f) | |
Defined in Control.Monad.Trans.Writer.Strict Methods fold :: Monoid m => WriterT w f m -> m foldMap :: Monoid m => (a -> m) -> WriterT w f a -> m foldMap' :: Monoid m => (a -> m) -> WriterT w f a -> m foldr :: (a -> b -> b) -> b -> WriterT w f a -> b foldr' :: (a -> b -> b) -> b -> WriterT w f a -> b foldl :: (b -> a -> b) -> b -> WriterT w f a -> b foldl' :: (b -> a -> b) -> b -> WriterT w f a -> b foldr1 :: (a -> a -> a) -> WriterT w f a -> a foldl1 :: (a -> a -> a) -> WriterT w f a -> a toList :: WriterT w f a -> [a] null :: WriterT w f a -> Bool length :: WriterT w f a -> Int elem :: Eq a => a -> WriterT w f a -> Bool maximum :: Ord a => WriterT w f a -> a minimum :: Ord a => WriterT w f a -> a sum :: Num a => WriterT w f a -> a product :: Num a => WriterT w f a -> a | |
Foldable f => Foldable (WriterT w f) | |
Defined in Control.Monad.Trans.Writer.Lazy Methods fold :: Monoid m => WriterT w f m -> m foldMap :: Monoid m => (a -> m) -> WriterT w f a -> m foldMap' :: Monoid m => (a -> m) -> WriterT w f a -> m foldr :: (a -> b -> b) -> b -> WriterT w f a -> b foldr' :: (a -> b -> b) -> b -> WriterT w f a -> b foldl :: (b -> a -> b) -> b -> WriterT w f a -> b foldl' :: (b -> a -> b) -> b -> WriterT w f a -> b foldr1 :: (a -> a -> a) -> WriterT w f a -> a foldl1 :: (a -> a -> a) -> WriterT w f a -> a toList :: WriterT w f a -> [a] null :: WriterT w f a -> Bool length :: WriterT w f a -> Int elem :: Eq a => a -> WriterT w f a -> Bool maximum :: Ord a => WriterT w f a -> a minimum :: Ord a => WriterT w f a -> a sum :: Num a => WriterT w f a -> a product :: Num a => WriterT w f a -> a | |
Foldable f => Foldable (Alt f) | |
Defined in Data.Foldable Methods fold :: Monoid m => Alt f m -> m foldMap :: Monoid m => (a -> m) -> Alt f a -> m foldMap' :: Monoid m => (a -> m) -> Alt f a -> m foldr :: (a -> b -> b) -> b -> Alt f a -> b foldr' :: (a -> b -> b) -> b -> Alt f a -> b foldl :: (b -> a -> b) -> b -> Alt f a -> b foldl' :: (b -> a -> b) -> b -> Alt f a -> b foldr1 :: (a -> a -> a) -> Alt f a -> a foldl1 :: (a -> a -> a) -> Alt f a -> a toList :: Alt f a -> [a] null :: Alt f a -> Bool length :: Alt f a -> Int elem :: Eq a => a -> Alt f a -> Bool maximum :: Ord a => Alt f a -> a minimum :: Ord a => Alt f a -> a sum :: Num a => Alt f a -> a product :: Num a => Alt f a -> a | |
Foldable f => Foldable (Ap f) | |
Defined in Data.Foldable Methods fold :: Monoid m => Ap f m -> m foldMap :: Monoid m => (a -> m) -> Ap f a -> m foldMap' :: Monoid m => (a -> m) -> Ap f a -> m foldr :: (a -> b -> b) -> b -> Ap f a -> b foldr' :: (a -> b -> b) -> b -> Ap f a -> b foldl :: (b -> a -> b) -> b -> Ap f a -> b foldl' :: (b -> a -> b) -> b -> Ap f a -> b foldr1 :: (a -> a -> a) -> Ap f a -> a foldl1 :: (a -> a -> a) -> Ap f a -> a toList :: Ap f a -> [a] null :: Ap f a -> Bool length :: Ap f a -> Int elem :: Eq a => a -> Ap f a -> Bool maximum :: Ord a => Ap f a -> a minimum :: Ord a => Ap f a -> a sum :: Num a => Ap f a -> a product :: Num a => Ap f a -> a | |
Bifoldable p => Foldable (Join p) | |
Defined in Data.Bifunctor.Join Methods fold :: Monoid m => Join p m -> m foldMap :: Monoid m => (a -> m) -> Join p a -> m foldMap' :: Monoid m => (a -> m) -> Join p a -> m foldr :: (a -> b -> b) -> b -> Join p a -> b foldr' :: (a -> b -> b) -> b -> Join p a -> b foldl :: (b -> a -> b) -> b -> Join p a -> b foldl' :: (b -> a -> b) -> b -> Join p a -> b foldr1 :: (a -> a -> a) -> Join p a -> a foldl1 :: (a -> a -> a) -> Join p a -> a toList :: Join p a -> [a] null :: Join p a -> Bool length :: Join p a -> Int elem :: Eq a => a -> Join p a -> Bool maximum :: Ord a => Join p a -> a minimum :: Ord a => Join p a -> a sum :: Num a => Join p a -> a product :: Num a => Join p a -> a | |
Foldable (K1 i c :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => K1 i c m -> m foldMap :: Monoid m => (a -> m) -> K1 i c a -> m foldMap' :: Monoid m => (a -> m) -> K1 i c a -> m foldr :: (a -> b -> b) -> b -> K1 i c a -> b foldr' :: (a -> b -> b) -> b -> K1 i c a -> b foldl :: (b -> a -> b) -> b -> K1 i c a -> b foldl' :: (b -> a -> b) -> b -> K1 i c a -> b foldr1 :: (a -> a -> a) -> K1 i c a -> a foldl1 :: (a -> a -> a) -> K1 i c a -> a toList :: K1 i c a -> [a] null :: K1 i c a -> Bool length :: K1 i c a -> Int elem :: Eq a => a -> K1 i c a -> Bool maximum :: Ord a => K1 i c a -> a minimum :: Ord a => K1 i c a -> a sum :: Num a => K1 i c a -> a product :: Num a => K1 i c a -> a | |
(Foldable f, Foldable g) => Foldable (f :+: g) | |
Defined in Data.Foldable Methods fold :: Monoid m => (f :+: g) m -> m foldMap :: Monoid m => (a -> m) -> (f :+: g) a -> m foldMap' :: Monoid m => (a -> m) -> (f :+: g) a -> m foldr :: (a -> b -> b) -> b -> (f :+: g) a -> b foldr' :: (a -> b -> b) -> b -> (f :+: g) a -> b foldl :: (b -> a -> b) -> b -> (f :+: g) a -> b foldl' :: (b -> a -> b) -> b -> (f :+: g) a -> b foldr1 :: (a -> a -> a) -> (f :+: g) a -> a foldl1 :: (a -> a -> a) -> (f :+: g) a -> a toList :: (f :+: g) a -> [a] null :: (f :+: g) a -> Bool length :: (f :+: g) a -> Int elem :: Eq a => a -> (f :+: g) a -> Bool maximum :: Ord a => (f :+: g) a -> a minimum :: Ord a => (f :+: g) a -> a sum :: Num a => (f :+: g) a -> a product :: Num a => (f :+: g) a -> a | |
(Foldable f, Foldable g) => Foldable (f :*: g) | |
Defined in Data.Foldable Methods fold :: Monoid m => (f :*: g) m -> m foldMap :: Monoid m => (a -> m) -> (f :*: g) a -> m foldMap' :: Monoid m => (a -> m) -> (f :*: g) a -> m foldr :: (a -> b -> b) -> b -> (f :*: g) a -> b foldr' :: (a -> b -> b) -> b -> (f :*: g) a -> b foldl :: (b -> a -> b) -> b -> (f :*: g) a -> b foldl' :: (b -> a -> b) -> b -> (f :*: g) a -> b foldr1 :: (a -> a -> a) -> (f :*: g) a -> a foldl1 :: (a -> a -> a) -> (f :*: g) a -> a toList :: (f :*: g) a -> [a] null :: (f :*: g) a -> Bool length :: (f :*: g) a -> Int elem :: Eq a => a -> (f :*: g) a -> Bool maximum :: Ord a => (f :*: g) a -> a minimum :: Ord a => (f :*: g) a -> a sum :: Num a => (f :*: g) a -> a product :: Num a => (f :*: g) a -> a | |
Foldable (Forget r a :: Type -> Type) | |
Defined in Data.Profunctor.Types Methods fold :: Monoid m => Forget r a m -> m foldMap :: Monoid m => (a0 -> m) -> Forget r a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Forget r a a0 -> m foldr :: (a0 -> b -> b) -> b -> Forget r a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Forget r a a0 -> b foldl :: (b -> a0 -> b) -> b -> Forget r a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Forget r a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Forget r a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Forget r a a0 -> a0 toList :: Forget r a a0 -> [a0] null :: Forget r a a0 -> Bool length :: Forget r a a0 -> Int elem :: Eq a0 => a0 -> Forget r a a0 -> Bool maximum :: Ord a0 => Forget r a a0 -> a0 minimum :: Ord a0 => Forget r a a0 -> a0 sum :: Num a0 => Forget r a a0 -> a0 product :: Num a0 => Forget r a a0 -> a0 | |
(Foldable f, Foldable g) => Foldable (Product f g) | |
Defined in Data.Functor.Product Methods fold :: Monoid m => Product f g m -> m foldMap :: Monoid m => (a -> m) -> Product f g a -> m foldMap' :: Monoid m => (a -> m) -> Product f g a -> m foldr :: (a -> b -> b) -> b -> Product f g a -> b foldr' :: (a -> b -> b) -> b -> Product f g a -> b foldl :: (b -> a -> b) -> b -> Product f g a -> b foldl' :: (b -> a -> b) -> b -> Product f g a -> b foldr1 :: (a -> a -> a) -> Product f g a -> a foldl1 :: (a -> a -> a) -> Product f g a -> a toList :: Product f g a -> [a] null :: Product f g a -> Bool length :: Product f g a -> Int elem :: Eq a => a -> Product f g a -> Bool maximum :: Ord a => Product f g a -> a minimum :: Ord a => Product f g a -> a sum :: Num a => Product f g a -> a product :: Num a => Product f g a -> a | |
(Foldable f, Foldable g) => Foldable (Sum f g) | |
Defined in Data.Functor.Sum Methods fold :: Monoid m => Sum f g m -> m foldMap :: Monoid m => (a -> m) -> Sum f g a -> m foldMap' :: Monoid m => (a -> m) -> Sum f g a -> m foldr :: (a -> b -> b) -> b -> Sum f g a -> b foldr' :: (a -> b -> b) -> b -> Sum f g a -> b foldl :: (b -> a -> b) -> b -> Sum f g a -> b foldl' :: (b -> a -> b) -> b -> Sum f g a -> b foldr1 :: (a -> a -> a) -> Sum f g a -> a foldl1 :: (a -> a -> a) -> Sum f g a -> a toList :: Sum f g a -> [a] null :: Sum f g a -> Bool length :: Sum f g a -> Int elem :: Eq a => a -> Sum f g a -> Bool maximum :: Ord a => Sum f g a -> a minimum :: Ord a => Sum f g a -> a sum :: Num a => Sum f g a -> a product :: Num a => Sum f g a -> a | |
Foldable f => Foldable (M1 i c f) | |
Defined in Data.Foldable Methods fold :: Monoid m => M1 i c f m -> m foldMap :: Monoid m => (a -> m) -> M1 i c f a -> m foldMap' :: Monoid m => (a -> m) -> M1 i c f a -> m foldr :: (a -> b -> b) -> b -> M1 i c f a -> b foldr' :: (a -> b -> b) -> b -> M1 i c f a -> b foldl :: (b -> a -> b) -> b -> M1 i c f a -> b foldl' :: (b -> a -> b) -> b -> M1 i c f a -> b foldr1 :: (a -> a -> a) -> M1 i c f a -> a foldl1 :: (a -> a -> a) -> M1 i c f a -> a toList :: M1 i c f a -> [a] null :: M1 i c f a -> Bool length :: M1 i c f a -> Int elem :: Eq a => a -> M1 i c f a -> Bool maximum :: Ord a => M1 i c f a -> a minimum :: Ord a => M1 i c f a -> a sum :: Num a => M1 i c f a -> a product :: Num a => M1 i c f a -> a | |
(Foldable f, Foldable g) => Foldable (f :.: g) | |
Defined in Data.Foldable Methods fold :: Monoid m => (f :.: g) m -> m foldMap :: Monoid m => (a -> m) -> (f :.: g) a -> m foldMap' :: Monoid m => (a -> m) -> (f :.: g) a -> m foldr :: (a -> b -> b) -> b -> (f :.: g) a -> b foldr' :: (a -> b -> b) -> b -> (f :.: g) a -> b foldl :: (b -> a -> b) -> b -> (f :.: g) a -> b foldl' :: (b -> a -> b) -> b -> (f :.: g) a -> b foldr1 :: (a -> a -> a) -> (f :.: g) a -> a foldl1 :: (a -> a -> a) -> (f :.: g) a -> a toList :: (f :.: g) a -> [a] null :: (f :.: g) a -> Bool length :: (f :.: g) a -> Int elem :: Eq a => a -> (f :.: g) a -> Bool maximum :: Ord a => (f :.: g) a -> a minimum :: Ord a => (f :.: g) a -> a sum :: Num a => (f :.: g) a -> a product :: Num a => (f :.: g) a -> a | |
(Foldable f, Foldable g) => Foldable (Compose f g) | |
Defined in Data.Functor.Compose Methods fold :: Monoid m => Compose f g m -> m foldMap :: Monoid m => (a -> m) -> Compose f g a -> m foldMap' :: Monoid m => (a -> m) -> Compose f g a -> m foldr :: (a -> b -> b) -> b -> Compose f g a -> b foldr' :: (a -> b -> b) -> b -> Compose f g a -> b foldl :: (b -> a -> b) -> b -> Compose f g a -> b foldl' :: (b -> a -> b) -> b -> Compose f g a -> b foldr1 :: (a -> a -> a) -> Compose f g a -> a foldl1 :: (a -> a -> a) -> Compose f g a -> a toList :: Compose f g a -> [a] null :: Compose f g a -> Bool length :: Compose f g a -> Int elem :: Eq a => a -> Compose f g a -> Bool maximum :: Ord a => Compose f g a -> a minimum :: Ord a => Compose f g a -> a sum :: Num a => Compose f g a -> a product :: Num a => Compose f g a -> a | |
Foldable g => Foldable (Joker g a) | |
Defined in Data.Bifunctor.Joker Methods fold :: Monoid m => Joker g a m -> m foldMap :: Monoid m => (a0 -> m) -> Joker g a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Joker g a a0 -> m foldr :: (a0 -> b -> b) -> b -> Joker g a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Joker g a a0 -> b foldl :: (b -> a0 -> b) -> b -> Joker g a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Joker g a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Joker g a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Joker g a a0 -> a0 toList :: Joker g a a0 -> [a0] null :: Joker g a a0 -> Bool length :: Joker g a a0 -> Int elem :: Eq a0 => a0 -> Joker g a a0 -> Bool maximum :: Ord a0 => Joker g a a0 -> a0 minimum :: Ord a0 => Joker g a a0 -> a0 sum :: Num a0 => Joker g a a0 -> a0 product :: Num a0 => Joker g a a0 -> a0 | |
Foldable (Clown f a :: Type -> Type) | |
Defined in Data.Bifunctor.Clown Methods fold :: Monoid m => Clown f a m -> m foldMap :: Monoid m => (a0 -> m) -> Clown f a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Clown f a a0 -> m foldr :: (a0 -> b -> b) -> b -> Clown f a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Clown f a a0 -> b foldl :: (b -> a0 -> b) -> b -> Clown f a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Clown f a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Clown f a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Clown f a a0 -> a0 toList :: Clown f a a0 -> [a0] null :: Clown f a a0 -> Bool length :: Clown f a a0 -> Int elem :: Eq a0 => a0 -> Clown f a a0 -> Bool maximum :: Ord a0 => Clown f a a0 -> a0 minimum :: Ord a0 => Clown f a a0 -> a0 sum :: Num a0 => Clown f a a0 -> a0 product :: Num a0 => Clown f a a0 -> a0 | |
Bifoldable p => Foldable (Flip p a) | |
Defined in Data.Bifunctor.Flip Methods fold :: Monoid m => Flip p a m -> m foldMap :: Monoid m => (a0 -> m) -> Flip p a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Flip p a a0 -> m foldr :: (a0 -> b -> b) -> b -> Flip p a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Flip p a a0 -> b foldl :: (b -> a0 -> b) -> b -> Flip p a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Flip p a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Flip p a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Flip p a a0 -> a0 toList :: Flip p a a0 -> [a0] null :: Flip p a a0 -> Bool length :: Flip p a a0 -> Int elem :: Eq a0 => a0 -> Flip p a a0 -> Bool maximum :: Ord a0 => Flip p a a0 -> a0 minimum :: Ord a0 => Flip p a a0 -> a0 sum :: Num a0 => Flip p a a0 -> a0 product :: Num a0 => Flip p a a0 -> a0 | |
Bifoldable p => Foldable (WrappedBifunctor p a) | |
Defined in Data.Bifunctor.Wrapped Methods fold :: Monoid m => WrappedBifunctor p a m -> m foldMap :: Monoid m => (a0 -> m) -> WrappedBifunctor p a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> WrappedBifunctor p a a0 -> m foldr :: (a0 -> b -> b) -> b -> WrappedBifunctor p a a0 -> b foldr' :: (a0 -> b -> b) -> b -> WrappedBifunctor p a a0 -> b foldl :: (b -> a0 -> b) -> b -> WrappedBifunctor p a a0 -> b foldl' :: (b -> a0 -> b) -> b -> WrappedBifunctor p a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> WrappedBifunctor p a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> WrappedBifunctor p a a0 -> a0 toList :: WrappedBifunctor p a a0 -> [a0] null :: WrappedBifunctor p a a0 -> Bool length :: WrappedBifunctor p a a0 -> Int elem :: Eq a0 => a0 -> WrappedBifunctor p a a0 -> Bool maximum :: Ord a0 => WrappedBifunctor p a a0 -> a0 minimum :: Ord a0 => WrappedBifunctor p a a0 -> a0 sum :: Num a0 => WrappedBifunctor p a a0 -> a0 product :: Num a0 => WrappedBifunctor p a a0 -> a0 | |
(Foldable f, Bifoldable p) => Foldable (Tannen f p a) | |
Defined in Data.Bifunctor.Tannen Methods fold :: Monoid m => Tannen f p a m -> m foldMap :: Monoid m => (a0 -> m) -> Tannen f p a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Tannen f p a a0 -> m foldr :: (a0 -> b -> b) -> b -> Tannen f p a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Tannen f p a a0 -> b foldl :: (b -> a0 -> b) -> b -> Tannen f p a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Tannen f p a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Tannen f p a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Tannen f p a a0 -> a0 toList :: Tannen f p a a0 -> [a0] null :: Tannen f p a a0 -> Bool length :: Tannen f p a a0 -> Int elem :: Eq a0 => a0 -> Tannen f p a a0 -> Bool maximum :: Ord a0 => Tannen f p a a0 -> a0 minimum :: Ord a0 => Tannen f p a a0 -> a0 sum :: Num a0 => Tannen f p a a0 -> a0 product :: Num a0 => Tannen f p a a0 -> a0 | |
(Bifoldable p, Foldable g) => Foldable (Biff p f g a) | |
Defined in Data.Bifunctor.Biff Methods fold :: Monoid m => Biff p f g a m -> m foldMap :: Monoid m => (a0 -> m) -> Biff p f g a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Biff p f g a a0 -> m foldr :: (a0 -> b -> b) -> b -> Biff p f g a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Biff p f g a a0 -> b foldl :: (b -> a0 -> b) -> b -> Biff p f g a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Biff p f g a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Biff p f g a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Biff p f g a a0 -> a0 toList :: Biff p f g a a0 -> [a0] null :: Biff p f g a a0 -> Bool length :: Biff p f g a a0 -> Int elem :: Eq a0 => a0 -> Biff p f g a a0 -> Bool maximum :: Ord a0 => Biff p f g a a0 -> a0 minimum :: Ord a0 => Biff p f g a a0 -> a0 sum :: Num a0 => Biff p f g a a0 -> a0 product :: Num a0 => Biff p f g a a0 -> a0 |