visual ultima studio novedades new features espaƱol haskell show typeclass ghci

haskell - ultima - c# 8



Haskell: Deriving Show para tipo personalizado (2)

La declaración de instancia que hizo es la forma correcta de ir. Parece que se olvidó de eliminar esa cláusula de deriving defectuosa de la declaración de data original.

data Operace = Op (Int->Int->Int) String (Int->Int->Int) instance Show Operace where show (Op op str inv) = show str

Tengo esta definición de tipo:

data Operace = Op (Int->Int->Int) String (Int->Int->Int) deriving Show

Quiero imprimir este tipo en el shell interactivo (GHCi). Todo lo que debe imprimirse es el campo String .

Intenté esto:

instance Show Operace where show (Op op str inv) = show str

Pero sigo recibiendo

No instance for (Show (Int -> Int -> Int)) arising from the ''deriving'' clause of a data type declaration Possible fix: add an instance declaration for (Show (Int -> Int -> Int)) or use a standalone ''deriving instance'' declaration, so you can specify the instance context yourself When deriving the instance for (Show Operace)

No quiero agregar Show para (Int->Int->Int) , todo lo que quiero imprimir es la cadena.

¡Gracias por la ayuda!

EDITAR:

Para futuras referencias, la versión fija es:

data Operace = Op (Int->Int->Int) String (Int->Int->Int) instance Show Operace where show (Op op str inv) = str


Puede derivar Show , solo importar Text.Show.Functions primero.