On Sun, 27 May 2007, Andrew Coppin wrote:

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

I think you'll find a fair number of people do in fact understand them! 

> 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. :-(
> 

So don't use type extensions in your own code? It's comparatively rare to 
have any big problems using libraries that make use of them - I remember 
banging my head briefly the first time I used ST as a newbie, but that was 
about it.

> 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.

It would be no bad thing if people were less scared of them and just 
learned - they're not complicated.

> (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...)
> 

The library doesn't because defining a sufficiently generic notion of 
State monad (enough so that we can treat a more complex monad that 
also has a notion of state the same way) requires the extensions. It's all 
about the polymorphism - one of the reasons Haskell code stays simple is 
that the amount of polymorphism possible makes people less keen on writing 
massive overbearing frameworks.

-- 
[EMAIL PROTECTED]

There is no magic bullet. There are, however, plenty of bullets that
magically home in on feet when not used in exactly the right circumstances.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to