[Haskell-cafe] Language extensions [was: Memoization]

Andrew Coppin andrewcoppin at btinternet.com
Sun May 27 16:46:12 EDT 2007


Brandon S. Allbery KF8NH wrote:
>> Seriously. Haskell seems to attract weird and wonderful type system 
>> extensions like a 4 Tesla magnet attracts iron nails... And most of 
>> these extensions seem to serve no useful purpose, as far as I can 
>> determine. And yet, all nontrivial Haskell programs *require* the use 
>> of at least 3 language extensions. It's as if everyone thinks that 
>> Haskell 98 sucks so much that it can't be used for any useful 
>> programs. This makes me very sad. I think
>
> Which ones?  The only one that comes to mind is hierarchical 
> libraries, which are a Good Thing --- the H98 flat namespace becomes 
> increasingly restrictive as Haskell gains more libraries (both 
> included ones, and from e.g. Hackage.)

Hierachical libraries are a very good extension - in fact, I can bearly 
believe they weren't in the original language spec. I was under the 
impression that this isn't an "extension" any more because it's been 
added to the official language report. (?)

I'm thinking more about things like phantom types, rank-N polymorphism, 
functional dependencies, GADTs, etc etc etc that nobody actually 
understands.

> Keep in mind also that many of these extensions are part of Haskell 
> Prime, which last I checked is supposed to become official sometime 
> later this year.

This worries me greatly. I'm really afraid that Haskell will go from 
being this wonderful, simple language that you can explain in a page or 
two of text to being this incomprehensible mass of complex type 
machinery that I and most other human beings will never be able to learn 
or use. :-(

Also... "sometime later this year"? That's new to me...

>> Haskell 98 is a wonderful language, and it's the language I use for 
>> almost all my stuff. I don't understand why people keep trying to 
>> take this small, simple, clean, elegant language and bolt huge, 
>> highly complex and mostly incomprehensible type system extensions 
>> onto it...
>
> Experimentation.  There are things you can't do with straight Haskell 
> 98 (even something as simple as the State monad benefits from 
> functional dependencies; but fundeps are troublesome enough that 
> associated types are being explored as a cleaner alternative).
>
> Haskell's in kind of a strange position, being simultaneously a 
> research language and a language which is useful in the "real world".  
> The tension between these is one reason why there are standards (H98 
> and the upcoming H'):  we "real world" types write to H98 or H' 
> (increasingly the latter), while the researchers play with type system 
> extensions and the like.

People experimenting with the language I can live with. (Although I'd 
prefer it not to be called Haskell. Very confusing when people start 
asking me questions about this "Haskell" program that actually uses 
non-standard extensions that I've never heard of. And when I have to 
admit that even *I* can't comprehend what the code does, people go away 
with the notion that Haskell really *is* impossible to learn and it's 
not worth trying.)

What worries me is the day when you'll need to understand set theory and 
propositional calculus just to use any of the standard libraries. 
(Already I can't use the State monad because it requires some extension 
or other. Not that I understand why - as far as I can tell, it's 100% 
possible to define a State monad without language extensions. The 
library just doesn't, that's all. Well, I can always define my own I 
guess...)



More information about the Haskell-Cafe mailing list