Le programme suivant donne une erreur dans ghci:Comment utiliser fromInteger sans prélude implicite dans Haskell?
{-# LANGUAGE NoImplicitPrelude #-}
import Prelude (Integer, Bool)
import qualified Prelude
class Discrete a where
(==) :: a -> a -> Bool
instance Discrete Integer where
(==) = (Prelude.==)
class Monoid a where
one :: a
(*) :: a -> a -> a
fromInteger :: Integer -> a
fromInteger 1 = one
savoir:
fromInteger.hs: 17: 16:
Aucun cas de (Monoid entier)
résultant de l'1' at fromInteger.hs:17:16
littéral fromInteger ': fromInteger 1 = one
Possible fix: add an instance declaration for (Monoid Integer)
In the pattern: 1
In the definition of
Comment puis-je le réparer afin que 1 puisse être converti one
pour les monoïdes? Tous les autres entiers peuvent (ou devraient) donner Prelude.undefined
lorsqu'ils sont appliqués à (Monoid a) => fromInteger
.
S'il vous plaît être conscient que je suis le contraire d'un expert à Haskell alors s'il vous plaît pardonnez-moi au cas où la réponse est évidente.