diff --git a/Cabal-syntax/src/Distribution/Fields/ParseResult.hs b/Cabal-syntax/src/Distribution/Fields/ParseResult.hs index b7dbcf4a220..f300fc115f8 100644 --- a/Cabal-syntax/src/Distribution/Fields/ParseResult.hs +++ b/Cabal-syntax/src/Distribution/Fields/ParseResult.hs @@ -17,15 +17,21 @@ module Distribution.Fields.ParseResult ( withoutWarnings, ) where -import Distribution.Compat.Prelude import Distribution.Parsec.Error (PError (..)) import Distribution.Parsec.Position (Position (..), zeroPos) import Distribution.Parsec.Warning (PWarnType (..), PWarning (..)) import Distribution.Version (Version) import Prelude () +-- liftA2 is not in base <4.10, hence we need to only import it explicitly when we're on >=4.10 +-- +-- Additionally, since liftA2 will be exported from Prelude starting with ~4.18, we should hide +-- it from Prelude and get it from Control.Applicative to be backwards compatible and avoid warnings #if MIN_VERSION_base(4,10,0) -import Control.Applicative (Applicative (..)) +import Distribution.Compat.Prelude hiding (Applicative(..)) +import Control.Applicative (Applicative (..)) +#else +import Distribution.Compat.Prelude #endif -- | A monad with failure and accumulating errors and warnings. diff --git a/Cabal-syntax/src/Distribution/System.hs b/Cabal-syntax/src/Distribution/System.hs index 62b52a20ce6..68bda631f19 100644 --- a/Cabal-syntax/src/Distribution/System.hs +++ b/Cabal-syntax/src/Distribution/System.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} @@ -42,8 +43,12 @@ module Distribution.System ( ) where import Prelude () -import Distribution.Compat.Prelude +import Distribution.Compat.Prelude hiding (Applicative(..)) +import Control.Applicative (Applicative(..)) + +#if !MIN_VERSION_base(4,10,0) import Control.Applicative (liftA2) +#endif import qualified System.Info (os, arch) import Distribution.Utils.Generic (lowercase) diff --git a/Cabal-syntax/src/Distribution/Types/VersionInterval.hs b/Cabal-syntax/src/Distribution/Types/VersionInterval.hs index 96d6df0d3f6..cc8c3966349 100644 --- a/Cabal-syntax/src/Distribution/Types/VersionInterval.hs +++ b/Cabal-syntax/src/Distribution/Types/VersionInterval.hs @@ -38,7 +38,7 @@ module Distribution.Types.VersionInterval ( import Control.Applicative (liftA2) import Control.Exception (assert) -import Distribution.Compat.Prelude +import Distribution.Compat.Prelude hiding (Applicative(..)) import Prelude () import Distribution.Types.Version