Upgrading packages/Updating to GHC 7

From HaskellWiki
< Upgrading packages
Revision as of 00:45, 30 September 2010 by Simonpj (talk | contribs) (-XMonoLocalBinds)

Jump to: navigation, search

A list of common problems upgrading packages to GHC 7.

If you maintain packages, this is for you.


If you use -XGADTs or -XTypeFamilies (or -fglasgow-exts, which is deprecated) 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.

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.

The binary library shipped with the compiler is renamed ghc-binary

If your package expects to see binary, the correct thing is to build and install an external version. However, you will need a version newer than, which was the current version in hackage when this was written.

Required library versions

A list of libraries and their earliest (known) GHC 7 ready version:

  • network >=
  • mtl >=
  • quickcheck >=
  • stringsearch >= 0.3.2