Hola!
Tengo el siguiente código:
class Sizeable a where
size :: a -> Int
instance Sizeable Int where
size x = abs x
Al ejecutar size -3, por ejemplo, Haskell me da un error porque el tipo de -3 en realidad es Num y no Int que es el tipo para el que definí a instancia. Al ejecutar size (-3 :: Int) si funciona.
Hay alguna forma de evitar esto?