If I may interject...
It seems that you are considering the alternatives of "simple"
versus "useful for serious work". This is highly ironic to me,
because I first discovered Haskell a couple of months ago when
I said "I want a simple language with _fewer_ _features_ to do
my serious work in.", and someone replied to me "You can have
a simple language which is also powerful. See 'Haskell'.".
So I came to Haskell looking for neither cutting-edge language
advances nor for something to teach to students, but for a
_simple_ language to do normal old hacking in.
See what I mean?
Simplicity _is_, for me, one of the most important features of
a serious, workaday, professional language.
I think that to scientists and language researchers the value
of a language is largely determined by the mix of features and
capabilities, but to a software engineer those things need to
be just sufficient so that the language doesn't "get in the
way". After that, simplicity, consistency, maintainability,
and so forth are most important.
In my mind, at least.
Perhaps I'm just scarred from memorizing too many stupid C++
quirks and their side effects. :-)
Frankly, though I consider myself to be a pretty smart cookie,
I'll probably get around to fully comprehending all of the
subtleties that a full-fledged "Haskell 1.5++" might contain.
I'm looking for an elegant and powerful language that I can use
_without_ first completing months of study of highly abstract
language concepts.
I know that I am opening myself up for scorn by saying that,
but please consider as the sincere perspective of a
professional software developer.
Anyway... All this came out because I saw someone saying "We
need to add all these features in order to make Haskell useful
for serious programming!". That may well be true, depending on
what the features actually are, but it strikes me as ironic
since I came here in search of "fewer features, for serious
programming". :-)
Regards,
Zooko, Journeyman Hacker