[Haskell-cafe] Re: Comments from OCaml Hacker Brian Hurt
es at ertes.de
Sun Jan 18 11:20:49 EST 2009
Andrew Coppin <andrewcoppin at btinternet.com> wrote:
> Ertugrul Soeylemez wrote:
> > Andrew Coppin <andrewcoppin at btinternet.com> wrote:
> >> I would suggest that ExistentiallyQuantifiedTypeVariables would be
> >> an improvement [...]
> > That must be a joke. Typing the long extension names in LANGUAGE
> > pragmas over and over again is tiring and annoying enough already.
> > We really don't need even longer names, and your "improvement" fills
> > up almost half of the width of an 80 characters terminal.
> Which is why I personally prefer HiddenTypeVariables. (This has the
> advantage of using only pronouncible English words, which means you
> can use it when speaking out loud.)
> But, as I say, nobody is going to rename anything, so it's moot.
Well, yes, unfortunately, unless someone proposes extension renamings
together with a long paper about the psychological implications and
advantages of using shorter names.
> > I can't await the next Haskell standard, where at last all those
> > extensions are builtin.
> This frightens me.
> At the moment, I understand how Haskell 98 works. There are lots of
> extensions out there, but I don't have to care about that because I
> don't use them. If I read somebody else's code and it contains a
> LANGUAGE pragma, I can immediately tell that the code won't be
> comprehendable, so I don't need to waste time trying to read it. But
> once Haskell' becomes standard, none of this holds any more. Haskell'
> code will use obscure lanuage features without warning, and unless I
> somehow learn every extension in the set, I'll never be able to read
> Haskell again! (One presumes that they won't add any extensions which
> actually *break* backwards compatibility, so hopefully I can still
> pretend these troublesome extensions don't exist when writing my own
I think, the list of accepted extensions is well chosen. And don't
worry, the extensions I'm talking about mainly, are easy to comprehend
and very useful, for example multi-parameter type classes and rank-n
nightmare = unsafePerformIO (getWrongWife >>= sex)
More information about the Haskell-Cafe