Estoy intentando crear una instancia para listas y me el compilador me da error en "size7 x". Este es mi código:
class Sizable a where
size7 :: a -> Int
instance Sizable Int where
size7 n = abs n
instance Sizable Char where
size7 _ = 1
instance Sizable [a] where
size7 [] = 0
size7 (x:xs) = size7 x + size7 xs
Mi idea era que en size7 x "identifique" si es una lista de char(y devolver 1) o lista de Int y devuelva el valor absoluto. Luego calcule con el resto de la lista. Estoy manejando mal algún concepto, quería saber cual.
Saludos