Upgrading packages/Updating to GHC 7
A list of common problems upgrading packages to GHC 7.
If you maintain packages, this is for you.
-XMonoLocalBinds[edit]
If you use -XGADTs or -XTypeFamilies you get -XMonoLocalBinds, which says that local let/where bindings are not auto-generalised. There's a blog post that explains the change, and what do to about it:
base 3 goes away[edit]
There is no base 3 now, after being deprecated for several years, so dependencies on base 3 won't compile with GHC 7.
-fglasgow-exts is deprecated[edit]
-fglasgow-exts is deprecated, and no longer enables GADTs or TypeFamilies. Use individual language flags (or better yet, pragmas) instead.
Quasiquotation data constructor modified[edit]
The QuasiQuoter constructor now takes four arguments instead of 2. (quoteType and quoteDec were added). One solution: use record syntax to set only the quoters you provide. This allows code to remain backwards compatible.
Quasiquotation: [$foo|...|] -> [foo|...|][edit]
Quasiquoter invocation no longer requires a leading dollar sign. The leading dollar is now allowed, but deprecated.
Required library versions[edit]
A list of libraries and their earliest (known) GHC 7 ready version:
- network >= 2.2.1.8
- mtl >= 1.1.1.0
- quickcheck >= 2.3.0.2
- stringsearch >= 0.3.2