Marcin 'Qrczak' Kowalczyk wrote:
>
> Just a small generic comment:
>
> IMVHO we should concentrate on making the thing useful for programmers.
> Not on exact modelling of mathematical concepts.
I agree completely. There are two problems with freezing large modules into
languages:
(1) they make life harder for implementors
(2) when you want to use them, it usually turns out that there is some
slight niggle you want which the implementor didn't think of,
thus making the whole thing useless. For example, where
are Division Rings (useful for Quaternions) in this proposal?
I think basAlgPropos looks pretty handy as the basis for a really
useful new library. (In the case of (2), it is not so hard to
hack a library.) There are some things it does which can't be done
by a library. For example I like being allowed to tell the compiler
that operations may be assumed associative. But wouldn't it be
better to work out a way of specifying such things in a general
way (EG by pragmas), rather than freezing them into particular
operations and classes?
In general I am worried that Haskell is getting too complicated.
I repeat what Jerome K Jerome said about programming language
design, in Three Men in a Boat:
> George said:
>
> "You know we are on a wrong track altogether. We must not think of the
> things we could do with, but only of the things that we can't do
> without."
There are many places where the Haskell language can be tidied
up and smoothed out. But I think new facilities should be in
separate packages, like HaskellDirect, so that users and implementors
can take them, leave them alone, or hack them as they wish.