change default to support extensions that involve a change of syntax
Use of a lot of extensions is obvious from the non-haskell-98 syntax they require.
GHC should default to supporting these extenions with a flag to tell the use what extensions are in use.
GHC should require that extensions that change the meaning of an already valid haskell-98 file should appear in pragmas in the source file.
More radical: GHC should not allow extenions flags on the command line.