Upgrading packages/Updating to GHC 7: Difference between revisions
No edit summary |
No edit summary |
||
Line 15: | Line 15: | ||
== -fglasgow-exts is deprecated == | == -fglasgow-exts is deprecated == | ||
-fglasgow-exts is deprecated, and enables | -fglasgow-exts is deprecated, and no longer enables GADTs or TypeFamilies. Use individual language flags (or better yet, pragmas) instead. | ||
== Quasiquotation data constructor modified == | == Quasiquotation data constructor modified == |
Revision as of 17:23, 29 October 2010
A list of common problems upgrading packages to GHC 7.
If you maintain packages, this is for you.
-XMonoLocalBinds
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
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
-fglasgow-exts is deprecated, and no longer enables GADTs or TypeFamilies. Use individual language flags (or better yet, pragmas) instead.
Quasiquotation data constructor modified
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|...|]
Quasiquoter invocation no longer requires/allows a leading dollar sign.
Required library versions
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