Quindi mi piace Haskell, ma sono insoddisfatto della classe Num. Quindi voglio creare il mio tipo gerarchico di tipografia per i tipi algebrici.
Il problema è, anche se importassi Prelude nascondendo Num e tutto ciò che è associato ad esso, ancora l'unico modo per rendere il letterale 1 ha tipo t è quello di rendere t instance Num.
Mi piacerebbe fare il mio classe fromInteger e lasciare Num fuori dal quadro del tutto, come questoOverride fromInteger in Haskell
import Prelude hiding (everything having to do with Num)
import qualified Prelude (everything having to do with Num)
class (Eq fi) => FromInteger fi where
fromInteger :: Integral -> fi
foo :: (FromInteger fi) => fi -> String
foo 1 = "that was a one"
foo 0 = "that was a zero"
foo n = "that was neither zero nor one"
e poi vorrei implementare fromInteger in modo appropriato per tipi di nuovo e non hanno mai dire nulla su Num.
C'è un modo per dire al parser di utilizzare un metodo diverso da Intero?
Grazie!
Fantastico, è fantastico! –
@JosephVictor Guarda anche [Prelude numerico] (http://www.haskell.org/haskellwiki/Numeric_Prelude). Potresti scoprire che fa quello che vuoi. – dave4420
Questo è ancora più bello (in pratica, esattamente quello che sto scrivendo!) –