|Portability||non-portable (GHC Extensions)|
|Maintainer||Patrick Bahr <firstname.lastname@example.org>|
This module provides functionality to number the components of a functorial value with consecutive integers.
This type is used for numbering components of a functorial value.
This function numbers the components of the given functorial value with consecutive integers starting at 0.
Functors representing data structures that can be traversed from left to right.
Instances are similar to
Functor, e.g. given a data type
data Tree a = Empty | Leaf a | Node (Tree a) a (Tree a)
a suitable instance would be
instance Traversable Tree where traverse f Empty = pure Empty traverse f (Leaf x) = Leaf <$> f x traverse f (Node l k r) = Node <$> traverse f l <*> f k <*> traverse f r
This is suitable even for abstract types, as the laws for
imply a form of associativity.
The superclass instances should satisfy the following: