[Haskell-cafe] Why shouldn't variable names be capitalized?

Brandon Moore brandonm at yahoo-inc.com
Fri Aug 4 14:15:23 EDT 2006

Martin Percossi wrote:
> Hi, I'm wondering what the rationale was for not allowing capitalized 
> variable names (and uncapitalized type names and constructors). I can 
> only think of two arguments, and IMHO both of them are bad:

I'm not so sure about variable names and constructors, but the type 
syntax just wouldn't work without a lexical distinction between type 
names and type variables. Is (Int -> Int) supposed to be polymorphic
with a type variable named "Int", or is it talking about a type "Int"?
Perhaps you'd be happier reserving names beginning with apostrophes for
variables? I think case is a bit easier to see - subattentive visual 
processing, and all that.

Mostly, case is used so you know what basic sort of thing some object
is, without reviewing everything in scope. Mathematicians
use typesetting similarly to tell basic kinds of things appart.

Imagine a mathematician complaining that he was forced to learn category 
theory to get a degree, and people still don't let him use letter with 
an arrow over it to denote a scalar quantity. It's just that ascii is 
more restricted, so we don't have things like fonts, greek letters, and 

Lexical syntax is the least important kind of linguistic freedom.


More information about the Haskell-Cafe mailing list