From f0532b86f6e23f023e626c49f0a1f93c3f4d043c Mon Sep 17 00:00:00 2001 From: Simon Jakobi Date: Fri, 19 Jun 2020 02:21:06 +0200 Subject: [PATCH] Silence redundant import warnings for Control.Monad.Fail (#633) Also address mysterious redundant import warnings in the testsuite This allows us to enable `buildStrictly=true` for GHC 8.8. Fixes #613. --- .travis.yml | 1 + src/Nix/Fresh.hs | 2 ++ src/Nix/Fresh/Basic.hs | 3 +++ src/Nix/Reduce.hs | 3 +++ src/Nix/Render.hs | 3 +++ src/Nix/Standard.hs | 2 ++ src/Nix/Type/Infer.hs | 3 +++ src/Nix/Utils/Fix1.hs | 3 +++ tests/PrettyParseTests.hs | 5 +---- 9 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index f1e2dd8..e6d8ca0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -101,6 +101,7 @@ jobs: - name: GHC 8.8.3, macOS env: - GHCVERSION=ghc883 + - buildStrictly=true os: osx - name: GHC 8.10.1, Linux, SDist, Optimize, Benchmark, Haddock, Shell Completions env: diff --git a/src/Nix/Fresh.hs b/src/Nix/Fresh.hs index 44654eb..a52e115 100644 --- a/src/Nix/Fresh.hs +++ b/src/Nix/Fresh.hs @@ -16,7 +16,9 @@ import Control.Applicative import Control.Monad.Base import Control.Monad.Catch import Control.Monad.Except +#if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail +#endif import Control.Monad.Reader import Control.Monad.Ref import Control.Monad.ST diff --git a/src/Nix/Fresh/Basic.hs b/src/Nix/Fresh/Basic.hs index 0ead889..2c0e96e 100644 --- a/src/Nix/Fresh/Basic.hs +++ b/src/Nix/Fresh/Basic.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} @@ -8,7 +9,9 @@ module Nix.Fresh.Basic where +#if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail ( MonadFail ) +#endif import Control.Monad.Reader import Nix.Effects import Nix.Render diff --git a/src/Nix/Reduce.hs b/src/Nix/Reduce.hs index cf96202..d462bdf 100644 --- a/src/Nix/Reduce.hs +++ b/src/Nix/Reduce.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE ApplicativeDo #-} {-# LANGUAGE ConstraintKinds #-} @@ -35,7 +36,9 @@ import Control.Applicative import Control.Arrow ( second ) import Control.Monad import Control.Monad.Catch +#if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail +#endif import Control.Monad.Fix import Control.Monad.IO.Class import Control.Monad.Reader diff --git a/src/Nix/Render.hs b/src/Nix/Render.hs index 8597fd0..127ead9 100644 --- a/src/Nix/Render.hs +++ b/src/Nix/Render.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE FlexibleContexts #-} @@ -12,7 +13,9 @@ module Nix.Render where import Prelude hiding ( readFile ) +#if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail ( MonadFail ) +#endif import Control.Monad.Trans import Data.ByteString ( ByteString ) import qualified Data.ByteString as BS diff --git a/src/Nix/Standard.hs b/src/Nix/Standard.hs index 624b23d..e3ed3d0 100644 --- a/src/Nix/Standard.hs +++ b/src/Nix/Standard.hs @@ -22,7 +22,9 @@ import Control.Applicative import Control.Comonad ( Comonad ) import Control.Comonad.Env ( ComonadEnv ) import Control.Monad.Catch hiding ( catchJust ) +#if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail ( MonadFail ) +#endif import Control.Monad.Free import Control.Monad.Reader import Control.Monad.Ref diff --git a/src/Nix/Type/Infer.hs b/src/Nix/Type/Infer.hs index ac2d296..39aa63b 100644 --- a/src/Nix/Type/Infer.hs +++ b/src/Nix/Type/Infer.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE ExistentialQuantification #-} @@ -30,7 +31,9 @@ import Control.Applicative import Control.Arrow import Control.Monad.Catch import Control.Monad.Except +#if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail +#endif import Control.Monad.Logic import Control.Monad.Reader import Control.Monad.Ref diff --git a/src/Nix/Utils/Fix1.hs b/src/Nix/Utils/Fix1.hs index 8b593b9..8116449 100644 --- a/src/Nix/Utils/Fix1.hs +++ b/src/Nix/Utils/Fix1.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} @@ -11,7 +12,9 @@ module Nix.Utils.Fix1 where import Control.Applicative import Control.Monad +#if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail +#endif import Control.Monad.Fix import Control.Monad.IO.Class import Control.Monad.Catch diff --git a/tests/PrettyParseTests.hs b/tests/PrettyParseTests.hs index cb5c6a5..94d7b2d 100644 --- a/tests/PrettyParseTests.hs +++ b/tests/PrettyParseTests.hs @@ -29,10 +29,7 @@ import Nix.Parser import Nix.Pretty import Test.Tasty import Test.Tasty.Hedgehog -import Text.Megaparsec ( Pos - , SourcePos - , mkPos - ) +import Text.Megaparsec ( Pos ) import qualified Text.Show.Pretty as PS asciiString :: MonadGen m => m String