Este programa fornece uma classe para tipos finitos e enumeráveis recursivamente. Esses tipos são úteis para representar conjuntos de dados que possuem um número finito de elementos, como por exemplo, os números inteiros ou as letras do alfabeto. Além disso, eles também são úteis para representar conjuntos de dados infinitos, como os números naturais ou os números reais. A classe fornece várias funções úteis para trabalhar com esses tipos, como por exemplo, a capacidade  de calcular o tamanho de um conjunto de dados ou de verificar se um dado elemento pertence a um conjunto. A classe é escrita em Haskell e é baseada na biblioteca 'universe-base' 