Syntax extensions (was: RE: The Future of Haskell discussion at the Haskell Workshop)

Simon Marlow simonmar@microsoft.com
Wed, 10 Sep 2003 13:13:56 +0100


=20
> > I also think that having backwards compatability is not much of an
> > issue.  After all, ghc has introduces a  number of not backward
> > compatable changes to haskell, and I never heard any complaints.=20
>=20
> Oh no?
>=20
> Implicit parameters: I'm sure it is a great thing, but I'd already
> used the (?) operator, and need -fglasgow-exts.  Now my program
> depends on a bunch of well places spaces to compile.
>=20
> Template Haskell: really cool new feature, which just happens to use
> a syntax that overlaps with the list comprehension syntax.
>=20
> And now, let's just screw any backwards compatibility, and re-engineer
> the records system=B9.

We at GHC HQ agree, and for future extensions we'll move to using =
separate options to enable them rather than lumping everything into =
-fglasgow-exts.  This is starting to happen already: we have -farrows, =
-fwith, -fffi (currently implied by -fglasgow-exts).

Of course, if we change the language that is implied by -fglasgow-exts =
now, we risk breaking old code :-)  Would folk prefer existing syntax =
extensions be moved into their own flags, or left in -fglasgow-exts for =
now?  I'm thinking of:

  - implicit parameters
  - template haskell
  - FFI
  - rank-N polymorphism (forall keyword)
  - recursive 'do' (mdo keyword)

Cheers,
	Simon