A list of things that need updating when porting packages to newer library/cabal versions.
If you maintain a Haskell package this is for you. For older versions of this document:
Most new tips for fixing build failures are tracked at https://github.com/haskell-infra/hackage-trustees/blob/master/cookbook.md
This page only tracks updates through 7.0 and earlier.
Updating to GHC 7.0
When upgrading to GHC 7.0, any of your packages that worked against the base-3 library will need to be updated to the base-4.
Compatibility with older GHC
Use cabal's conditional thingy, checking on impl(ghc >= x.yz). E.g:
ghc-options: -Wall -fexcess-precision -funbox-strict-fields if impl(ghc >= 6.12) ghc-options: -fno-warn-unused-do-bind