Esse programa é escrito em Haskell e possui uma hierarquia de classes construtoras de tipos, somente com métodos de tipos de rank 2. 