help from the community?

Jacques Carette carette at
Thu Feb 1 16:31:22 EST 2007

Stephanie Weirich wrote:
> I don't think we want to allow types like:
>     forall . Int   or     forall a b. Int
> These types are mostly bugs. Furthermore, rejecting them doesn't limit 
> expressiveness: they should both be "equivalent" to Int, so user could 
> just write Int. I can't really think how allowing these types extends 
> the expressiveness of the language, nor can I imagine a situation 
> where someone would prefer seeing one of these types instead of Int. 

If you restrict yourself to programs entirely written by humans, I agree 
completely.  But if you consider programs written by programs (say 
Template Haskell to be specific, but it could be via many other means), 
such degenerate types occur rather often.  Haskell does have 'const' at 
the value-level, and it is very useful.  And so is 'const' at the 
type-level, especially for code generators.

If there were a standard library of type-simplifiers, that could 
preprocess "forall a b. Int" to "Int", I again would be fine with only 
allowing Int.


More information about the Haskell-prime mailing list