Está bien encarada la solución pero en la subtarea cantidadDe te "estas saltando un nivel" y estas comparando un tipo de pokemon contra un pokemon (si bien lo desarmas) estás haciendo eso.
Lo ideal es comparar siempre lo más bajo contra lo más bajo que sería una función que compare tipo contra tipo, en otras palabras que sean del mismo tipo los datos que queres comparar.
cantidadDe:: TipoDePokemon -> TipoDePokemon -> Int
Como lo hiciste acá:
iguales :: Dir -> Dir -> Bool
iguales Norte Norte = True
iguales Este Este = True
iguales Sur Sur = True
iguales Oeste Oeste = True
Está bien encarada la solución pero en la subtarea cantidadDe te "estas saltando un nivel" y estas comparando un tipo de pokemon contra un pokemon (si bien lo desarmas) estás haciendo eso.
cantidadDe Agua (ConstPokemon Agua ) = 1 cantidadDe Fuego (ConstPokemon Fuego ) = 1 cantidadDe Planta (ConstPokemon Planta ) = 1 cantidadDe (ConstPokemon ) = 0
Lo ideal es comparar siempre lo más bajo contra lo más bajo que sería una función que compare tipo contra tipo, en otras palabras que sean del mismo tipo los datos que queres comparar.
cantidadDe:: TipoDePokemon -> TipoDePokemon -> Int
Como lo hiciste acá: iguales :: Dir -> Dir -> Bool iguales Norte Norte = True iguales Este Este = True iguales Sur Sur = True iguales Oeste Oeste = True