Wed, 19 Apr 2000 10:19:08 +0400 (MSD), S.D.Mechveliani <[EMAIL PROTECTED]> pisze:
> I have an impression that Haskell-98 calls `Integral' various models
> for the domain of integer numbers. And this is for Haskell-98'.
> While the good standard of future (I hope for Haskell-2) has, to my
> mind, to remove Integral and introduce GCDRing, FactorizationRing,
> EuclideanRing, Field - see
> http://www.botik.ru/pub/local/Mechveliani/basAlgPropos/
Why I don't like this proposal:
- It's too complicated.
- Relies on controversial type system features, like undecidable
instances and overlapping instances.
- Relies on type system features that are not implemented and it's
not clear if they can be correctly designed or implemented at all,
like "domain conversions".
- Has many instances that should not exist because the relevant type
does not have the class property; they return Nothing or fail,
instead of failing to compile.
- Properties like commutativity cannot be specified in Haskell.
The compiler won't be able to automatically perform any optimizations
based on commutativity.
- belongs is strange. IMHO it should always return True for valid
arguments, and invalid arguments should be impossible to construct
if the validity can be checked at all.
- Tries to turn a compiled language into an interpreted language.
FuncExpr, too much parsing (with arbitrary rules hardwired into
the language), too much runtime checks.
- It's too complicated.
- It's not true that it's "not necessary to dig into mathematics".
I studied mathematics and did not have that much of algebra.
- I perfer minBound to looking at element under Just under Just under
tuple of osetBounds.
- Uses ugly character and string arguments that tune the behavior,
e.g. in syzygyGens, divRem, canFr. I like Haskell98's divMod+quotRem
better.
- Uses unneeded sample arguments, e.g. in toEnum, zero, primes, read.
- Have I said that it's too complicated?
--
__("< Marcin Kowalczyk * [EMAIL PROTECTED] http://qrczak.ids.net.pl/
\__/ GCS/M d- s+:-- a23 C+++$ UL++>++++$ P+++ L++>++++$ E-
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-