Kevin Atkinson:
> I never, ever, said that I would like Haskell to be able to do
> everything C++ can.
No, that was my inference from the general drift of your comments.
I also never said that I want Haskell to become a
> more type unsafe language. If it was implied I'm sorry. What I did say
> that I would like Haskell to support true ad-hoc overloading which you
> seam to bitterly oppose to spite its many benefits.
Hardly 'bitterly'. I just wish to observe that it: involves a
considerable technical complication, at least, if one wishes to
preserve sensible typing properties; adds no actual power to the
language, whatsoever; is a _highly questionable_ practice from
a human factors POV; and, well, what were the benefits, again?
> I am interested in using Haskell to come up with a really generic set of
> containers and libraries. Haskell type system in its current state is
> not well suited for this task at all. However, I fell that once it can
> do this task it will be able to do it better than any other language out
> there due to its type class system.
I think it should be eminently possible to write a good generic
container class without resorting to either dynamic typing, or to
ad hoc polymorphism. (I don't see how these would really help,
actually.) There are likely still 'issues' with doing this properly
with MPCs, I can well believe that: the 'exploring the design
space' document, and some other papers, examine relaxing/generalising
the rules for class defaults and overlapping instances, in many
reasonable-seeming, though also technically tricky, directions.
It may be worth looking at least, if you're certain existing MPC
implentations don't allow everything you want to do with containers.
> Ok here is my partial list.
>
> - True ad-doc polymorphism
> - Built in dynamic typing system.
> - State Encapsulation
> - A solution to the abilities arising from multi parameter type classes.
> - Syntactic sugar for supporting OO programming styles
You should try C++ sometime, some people _highly_ recommend it
for the above. ;-)
Cheers,
Alex.