Foldable package:ghc-internal
Class of data structures that can be folded to a summary value.
The Foldable class represents data structures that can be reduced to a
summary value one element at a time. Strict left-associative folds are
a good fit for space-efficient reduction, while lazy right-associative
folds are a good fit for corecursive iteration, or for folds that
short-circuit after processing an initial subsequence of the
structure's elements.
Instances can be derived automatically by enabling the
DeriveFoldable extension. For example, a derived instance for
a binary tree might be:
{-# LANGUAGE DeriveFoldable #-}
data Tree a = Empty
| Leaf a
| Node (Tree a) a (Tree a)
deriving Foldable
A more detailed description can be found in the
Overview
section of
Data.Foldable#overview.
For the class laws see the
Laws section of
Data.Foldable#laws.