enumerate (hackage): provides  (1) a typeclass for enumerating all values in a finite type,  (2) a generic instance for automatic deriving, and  (3) helpers that reify functions (partial or total, monadic or pure) into a Map.  see the Enumerable module for extensive documentation.
Keywords: data|library|mit|program