Just as there's a Foldable class, there should also be an Unfoldable class.
This package provides one. Example unfolds are:
Random values
Enumeration of all values (depth-first or breadth-first)
Convert from a list
Some examples can be found in the examples directory.