Working with Foldable and Traversable
In this recipe, we will work with two type classes, Traversable
, and Foldable
. Both these classes are the generalization of the functions that we have seen when working with Lists
. Traversable
, as the name suggests, allows us to browse a data structure to traverse from left to right. Similarly, the Foldable
type class allows us to fold the elements of a data type.
In fact, in previous versions of GHC, traversals and folding were defined for lists. In recent versions, those functions are generalized to include Traversable
and Foldable
, making them applicable to a wide range of data structures.
We will also define Traversable
and Foldable
instances for a tree.
How to do it...
- Create a new project
working-with-traversable-foldable-map
with thesimple
Stack template:
stack new working-with-traversable-foldable-map simple
- Add dependency on the containers library in the
build-depends
subsection of theexecutable
section:
executable working-with-traversable...