Więc lubię Haskella, ale jestem niezadowolony z klasy Num. Więc chcę zrobić moją własną hierarchię typeclass dla typów algebraicznych.
Problem polega na tym, że nawet jeśli importuję Preludium ukrywając Num i wszystko z nim powiązane, nadal jedynym sposobem na wprowadzenie literału 1 jest wpisanie t wystąpienia Num.
chciałbym, aby moje własne klasy fromInteger i pozostawić Num z obrazu całości, jak toPrzesłaniam fromInteger w 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"
a następnie chciałbym wdrożyć fromInteger odpowiednio dla zupełnie nowych rodzajów i nigdy nie mówi nic o Num.
Czy istnieje sposób, aby powiedzieć parserowi, aby używał innej metody fromInteger?
Dzięki!
Fajnie, to świetnie! –
@JosephVictor Spójrz również na [Preludium numeryczne] (http://www.haskell.org/haskellwiki/Numeric_Prelude). Może się okazać, że robi to, co chcesz. – dave4420
To jeszcze bardziej (w zasadzie dokładnie to, co piszę!) –