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