Descrição
Define uma classe para tipos Haskell finitos e enumeráveis recursivamente. Ela permite que o código descreva quais valores pertencem a um tipo e os enumere quando isso é possível ou significativo.
É útil para testes exaustivos, busca, exemplos, geradores e experimentos no nível de tipos. Desenvolvedores devem ter cuidado com enumerações muito grandes ou infinitas, porque explorá-las de forma ingênua pode ser caro ou nunca terminar.