toList
We used the conversion of a foldable container into a list as an example to
illustrate the use of foldMap. This conversion from foldable containers to
lists is useful in general. We may have some set of elements in some container,
and we want to apply to it a function that expects a list as argument. The
conversion from container to list is a useful adapter for such list-specific
functions. We have
toList :: t a -> [a]
toList = foldMap singleton
as the default implementation.
GHCi
>>> toList Nothing
[]
>>> toList (Just 5)
[5]
>>> tree = Node Empty 5 (Node (Node Empty 3 Empty) 1 (Node Empty 2 Empty))
>>> toList tree
[5,3,1,2]