[Template-haskell] Release

Simon Peyton-Jones simonpj@microsoft.com
Tue, 27 May 2003 15:19:17 +0100


|=20
| `Bind'/`bind' has the same number of characters as
| `LetE'/`letE' and `Switch'/`switch' has even one more
| character than `CaseE'/`caseE'.

Indeed.  It's the *other* constructors in Exp I'm worried about.

| I still think the number one priority is to have no
| exceptions in the naming scheme.

In a large data type like Exp you are sure to have to refer to the
constructor list to find out what they are all called.  There's Var,
App, Tup, Cond... and (LetE or Bind) and (CaseE or Switch).  You have to
look to see what they are.

I'm agree 100% that the smart constructors should be derived
systematically.  So if we can't have 'let' for the smart constructor,
then we can't use 'Let' for the dumb constructor either.  What I'm
missing is why the dumb constructors must all have a suffix.=20

| Sorry for being stubborn on this, but I just don't see the
| advantage of saving one character if that risks that people
| have to refer to the documentation more often (or at least
| get a compiler error before they remember again that they
| are dealing with an exception).

I agree with that.  What I'm missing is why adding 'E' to the end of
each Exp constructor will reduce the number of looks at documentation.
It's a big data type. You have to look at it, don't you?

S