Foldable is:module
Class of data structures that can be folded to a summary value.
Re-exports a subset of the
Data.Foldable1 module along with
some additional combinators that require
Foldable1 constraints.
Contains utility functions for working with tuples.
Foldable types.
A minimal implementation of this interface is given by either
FoldMap or
Foldr, but a default still needs to be given
explicitly for the other.
data MyType a = ... {- Some custom Foldable type -}
-- Method 1: Implement Foldr, default FoldMap.
type instance Eval (Foldr f y xs) = ... {- Explicit implementation -}
type instance Eval (FoldMap f xs) = FoldMapDefault_ f xs {- Default -}
-- Method 2: Implement FoldMap, default Foldr.
type instance Eval (FoldMap f xs) = ... {- Explicit implementation -}
type instance Eval (Foldr f y xs) = FoldrDefault_ f y xs {- Default -}
Efficient enumeration of subsets of triangular elements. Given a list
[1..n] we want to enumerate a subset [(i,j)] of
ordered pairs in such a way that we only have to hold the elements
necessary for this subset in memory.
Class of data structures that can be folded to a summary value.
Deprecated: Use Data.Aeson.Extra.Recursive module
This shows how
Foldable is basically
Recursive
specialized to lists. The true operation of
Foldable is
toList.
As these few operations have the usual signatures, the rest of the
type class can be implemented in the as in
base.
Overrides for problematic
Foldable functions.
A class of non-empty data structures that can be folded to a summary
value.
Generic tools for data structures that can be folded.
Written by John Goerzen, jgoerzen@complete.org