Summary: Generic function that enumerates the values of a datatype.
enum generates a list of the values of a datatypes. It will produce all
values of all supported datatypes (with only a few exceptions ). For
datatypes that have an infinite enumeration (e.g.
enum produces an infinite list.
A number of the techniques used to write
enum came from a talk by Mark
Jones at the 2008 Advanced Functional Programming Summer School. The authors
gratefully acknowledge his contribution.
The type of a generic function that takes no arguments and returns a list of some type.
Enumerate the values of a datatype. If the number of values is infinite,
the result will be an infinite list. The remaining functions are derived from