I'll leave this a few days before screening in case there are any screams.
The key change is that all our 'Prelude' imports are now imports of 'Darcs.Prelude'.
The motivation is to cut down on the pain every time a new Prelude decides to export some new stuff.
From the comment:
This module abstracts over the differences in the Haskell Prelude over multiple GHC versions,
and also hides some symbols that are exported by the Prelude but clash with common names in
the Darcs code.
Broadly it exports everything that the latest Prelude supports, minus the things we explicitly exclude
By default it should be imported with
import Prelude ()
import Darcs.Prelude
1 patch for repository darcs-unstable@darcs.net:screened:
Sun May 31 15:26:27 BST 2015 Ganesh Sittampalam <ganesh@earth.li>
* Drop GHC 7.4 support, introduce 'Darcs.Prelude' to abstract over changes
This fixes the flood of redundant import warnings from bits of Applicative
being moved into the Prelude, and also should make future changes of this
nature easier to handle.
I should have screamed earlier ;-)
I read about the trick using import Prelude *after* all other imports
(from libraries). Would this work for us? If yes, I think this is nicer
than adding an import of Darcs.Prelude everywhere.
I didn't try the Prelude trick - it sounded a bit fragile to me and I don't
think it would catch other migrations we've had to do like the switch of 'catch'
from the Prelude to Control.Exception (because that was a re-definition, not
just a re-export).
If it does work for the current set of warnings I'm fine with using that
instead.
I withdraw my objections. You arguments about robustness sound
convincing and anyway I am not in a position to test this because I have
not even ghc 7.8 installed, much less 7.10.