From 9bccd0fd057e24f83fb0d19ff33b252bb98d764e Mon Sep 17 00:00:00 2001 From: Anton Latukha Date: Wed, 12 Jan 2022 23:17:07 +0200 Subject: [PATCH] (#1027) mk mod Prelude NoImplicitPrelude, mv mod Prelude (->Nix.) --- benchmarks/Main.hs | 1 + benchmarks/ParserBench.hs | 1 + hnix.cabal | 26 +++++++++----------------- main/Main.hs | 1 + main/Repl.hs | 16 ++++++++-------- src/Nix.hs | 2 +- src/Nix/Atoms.hs | 5 +++-- src/Nix/Builtins.hs | 3 ++- src/Nix/Cache.hs | 1 + src/Nix/Cited.hs | 1 + src/Nix/Cited/Basic.hs | 1 + src/Nix/Context.hs | 2 +- src/Nix/Convert.hs | 1 + src/Nix/Effects.hs | 3 ++- src/Nix/Effects/Basic.hs | 2 +- src/Nix/Effects/Derivation.hs | 2 +- src/Nix/Eval.hs | 2 +- src/Nix/Exec.hs | 4 ++-- src/Nix/Expr/Shorthands.hs | 2 +- src/Nix/Expr/Strings.hs | 2 +- src/Nix/Expr/Types.hs | 3 ++- src/Nix/Expr/Types/Annotated.hs | 1 + src/Nix/Frames.hs | 1 + src/Nix/Fresh.hs | 1 + src/Nix/Fresh/Basic.hs | 1 + src/Nix/Json.hs | 1 + src/Nix/Lint.hs | 1 + src/Nix/Normal.hs | 1 + src/Nix/Options.hs | 1 + src/Nix/Options/Parser.hs | 1 + src/Nix/Parser.hs | 2 +- src/{ => Nix}/Prelude.hs | 2 +- src/Nix/Pretty.hs | 3 +-- src/Nix/Reduce.hs | 1 + src/Nix/Render.hs | 5 +++-- src/Nix/Render/Frame.hs | 2 +- src/Nix/Scope.hs | 3 ++- src/Nix/Standard.hs | 1 + src/Nix/String.hs | 1 + src/Nix/String/Coerce.hs | 1 + src/Nix/TH.hs | 1 + src/Nix/Thunk.hs | 1 + src/Nix/Thunk/Basic.hs | 1 + src/Nix/Type/Assumption.hs | 6 ++++-- src/Nix/Type/Env.hs | 3 ++- src/Nix/Type/Infer.hs | 12 ++++-------- src/Nix/Type/Type.hs | 2 +- src/Nix/Unused.hs | 1 + src/Nix/Utils.hs | 1 - src/Nix/Utils/Fix1.hs | 4 +++- src/Nix/Value.hs | 1 + src/Nix/Value/Equal.hs | 2 +- src/Nix/Value/Monad.hs | 1 - src/Nix/Var.hs | 1 + src/Nix/XML.hs | 2 +- tests/EvalTests.hs | 6 +++++- tests/Main.hs | 1 + tests/NixLanguageTests.hs | 2 +- tests/ParserTests.hs | 2 +- tests/PrettyParseTests.hs | 1 + tests/PrettyTests.hs | 4 +++- tests/ReduceExprTests.hs | 3 +++ tests/TestCommon.hs | 2 +- 63 files changed, 102 insertions(+), 69 deletions(-) rename src/{ => Nix}/Prelude.hs (98%) diff --git a/benchmarks/Main.hs b/benchmarks/Main.hs index 0696968d..3c86fb46 100644 --- a/benchmarks/Main.hs +++ b/benchmarks/Main.hs @@ -1,5 +1,6 @@ module Main where +import Nix.Prelude import Criterion.Main import qualified ParserBench diff --git a/benchmarks/ParserBench.hs b/benchmarks/ParserBench.hs index 84ed1dcf..f8376358 100644 --- a/benchmarks/ParserBench.hs +++ b/benchmarks/ParserBench.hs @@ -1,5 +1,6 @@ module ParserBench (benchmarks) where +import Nix.Prelude import Nix.Parser import Criterion diff --git a/hnix.cabal b/hnix.cabal index 74077abb..5345cfdb 100644 --- a/hnix.cabal +++ b/hnix.cabal @@ -341,8 +341,8 @@ flag profiling library exposed-modules: - Prelude Nix + Nix.Prelude Nix.Utils Nix.Atoms Nix.Builtins @@ -398,9 +398,6 @@ library Paths_hnix hs-source-dirs: src - mixins: - base hiding (Prelude) - , relude ghc-options: -Wall -fprint-potential-instances @@ -469,7 +466,8 @@ library , vector >= 0.12.0 && < 0.13 , xml >= 1.3.14 && < 1.4 default-extensions: - OverloadedStrings + NoImplicitPrelude + , OverloadedStrings , DeriveGeneric , DeriveDataTypeable , DeriveFunctor @@ -532,11 +530,9 @@ executable hnix , serialise , template-haskell , time - mixins: - base hiding (Prelude) - , relude default-extensions: - OverloadedStrings + NoImplicitPrelude + , OverloadedStrings , DeriveGeneric , DeriveDataTypeable , DeriveFunctor @@ -579,9 +575,6 @@ test-suite hnix-tests PrettyTests ReduceExprTests TestCommon - mixins: - base hiding (Prelude) - , relude hs-source-dirs: tests ghc-options: @@ -615,7 +608,8 @@ test-suite hnix-tests , time , unix-compat default-extensions: - OverloadedStrings + NoImplicitPrelude + , OverloadedStrings , DeriveGeneric , DeriveDataTypeable , DeriveFunctor @@ -650,9 +644,6 @@ benchmark hnix-benchmarks ParserBench hs-source-dirs: benchmarks - mixins: - base hiding (Prelude) - , relude ghc-options: -Wall build-depends: @@ -668,7 +659,8 @@ benchmark hnix-benchmarks , template-haskell , time default-extensions: - OverloadedStrings + NoImplicitPrelude + , OverloadedStrings , DeriveGeneric , DeriveDataTypeable , DeriveFunctor diff --git a/main/Main.hs b/main/Main.hs index e69d2c8e..034b6cbf 100644 --- a/main/Main.hs +++ b/main/Main.hs @@ -4,6 +4,7 @@ module Main ( main ) where +import Nix.Prelude import Relude as Prelude ( force ) import Control.Comonad ( extract ) import qualified Control.Exception as Exception diff --git a/main/Repl.hs b/main/Repl.hs index f424965e..3774ccfb 100644 --- a/main/Repl.hs +++ b/main/Repl.hs @@ -14,16 +14,16 @@ module Repl , main' ) where -import Prelude hiding ( state ) +import Nix.Prelude hiding ( state ) import Nix hiding ( exec ) import Nix.Scope import Nix.Value.Monad ( demand ) -import qualified Data.HashMap.Lazy as M +import qualified Data.HashMap.Lazy as M import Data.Char ( isSpace ) import Data.List ( dropWhileEnd ) -import qualified Data.Text as Text -import qualified Data.Text.IO as Text +import qualified Data.Text as Text +import qualified Data.Text.IO as Text import Data.Version ( showVersion ) import Paths_hnix ( version ) @@ -33,7 +33,7 @@ import Prettyprinter ( Doc , space ) import qualified Prettyprinter -import qualified Prettyprinter.Render.Text as Prettyprinter +import qualified Prettyprinter.Render.Text as Prettyprinter import System.Console.Haskeline.Completion ( Completion(isFinished) @@ -49,9 +49,9 @@ import System.Console.Repline ( Cmd , HaskelineT , evalRepl ) -import qualified System.Console.Repline as Console -import qualified System.Exit as Exit -import qualified System.IO.Error as Error +import qualified System.Console.Repline as Console +import qualified System.Exit as Exit +import qualified System.IO.Error as Error -- | Repl entry point main :: (MonadNix e t f m, MonadIO m, MonadMask m) => m () diff --git a/src/Nix.hs b/src/Nix.hs index 9518009a..2eddb744 100644 --- a/src/Nix.hs +++ b/src/Nix.hs @@ -1,4 +1,3 @@ - module Nix ( module Nix.Cache , module Nix.Exec @@ -25,6 +24,7 @@ module Nix ) where +import Nix.Prelude import Relude.Unsafe ( (!!) ) import GHC.Err ( errorWithoutStackTrace ) import Data.Fix ( Fix ) diff --git a/src/Nix/Atoms.hs b/src/Nix/Atoms.hs index 32e4f621..31e069f8 100644 --- a/src/Nix/Atoms.hs +++ b/src/Nix/Atoms.hs @@ -1,8 +1,9 @@ -{-# language CPP #-} -{-# language DeriveAnyClass #-} +{-# language CPP #-} +{-# language DeriveAnyClass #-} module Nix.Atoms where +import Nix.Prelude import Codec.Serialise ( Serialise ) import Data.Data ( Data) diff --git a/src/Nix/Builtins.hs b/src/Nix/Builtins.hs index 00b3efe1..efca9247 100644 --- a/src/Nix/Builtins.hs +++ b/src/Nix/Builtins.hs @@ -13,6 +13,7 @@ {-# options_ghc -fno-warn-name-shadowing #-} + -- | Code that implements Nix builtins. Lists the functions that are built into the Nix expression evaluator. Some built-ins (aka `derivation`), are always in the scope, so they can be accessed by the name. To keap the namespace clean, most built-ins are inside the `builtins` scope - a set that contains all what is a built-in. module Nix.Builtins ( withNixContext @@ -20,7 +21,7 @@ module Nix.Builtins ) where - +import Nix.Prelude import GHC.Exception ( ErrorCall(ErrorCall) ) import Control.Comonad ( Comonad ) import Control.Monad ( foldM ) diff --git a/src/Nix/Cache.hs b/src/Nix/Cache.hs index 3ea53a96..6d9bc46b 100644 --- a/src/Nix/Cache.hs +++ b/src/Nix/Cache.hs @@ -3,6 +3,7 @@ -- | Reading and writing Nix cache files module Nix.Cache where +import Nix.Prelude import qualified Data.ByteString.Lazy as BSL import Nix.Expr.Types.Annotated diff --git a/src/Nix/Cited.hs b/src/Nix/Cited.hs index ba236067..d4f7e14c 100644 --- a/src/Nix/Cited.hs +++ b/src/Nix/Cited.hs @@ -5,6 +5,7 @@ module Nix.Cited where +import Nix.Prelude import Control.Comonad import Control.Comonad.Env import Lens.Family2.TH diff --git a/src/Nix/Cited/Basic.hs b/src/Nix/Cited/Basic.hs index 5eb8fb1f..50605d08 100644 --- a/src/Nix/Cited/Basic.hs +++ b/src/Nix/Cited/Basic.hs @@ -4,6 +4,7 @@ module Nix.Cited.Basic where +import Nix.Prelude import Control.Comonad ( Comonad ) import Control.Comonad.Env ( ComonadEnv ) import Control.Monad.Catch hiding ( catchJust ) diff --git a/src/Nix/Context.hs b/src/Nix/Context.hs index f979fd60..80153459 100644 --- a/src/Nix/Context.hs +++ b/src/Nix/Context.hs @@ -1,6 +1,6 @@ - module Nix.Context where +import Nix.Prelude import Nix.Options ( Options ) import Nix.Scope ( Scopes ) import Nix.Frames ( Frames ) diff --git a/src/Nix/Convert.hs b/src/Nix/Convert.hs index 263a7caf..4ad3944b 100644 --- a/src/Nix/Convert.hs +++ b/src/Nix/Convert.hs @@ -15,6 +15,7 @@ module Nix.Convert where +import Nix.Prelude import Control.Monad.Free import qualified Data.HashMap.Lazy as M import Nix.Atoms diff --git a/src/Nix/Effects.hs b/src/Nix/Effects.hs index 51629832..b85fc896 100644 --- a/src/Nix/Effects.hs +++ b/src/Nix/Effects.hs @@ -12,9 +12,10 @@ module Nix.Effects where -import Prelude hiding ( putStrLn +import Nix.Prelude hiding ( putStrLn , print ) +import qualified Nix.Prelude as Prelude import GHC.Exception ( ErrorCall(ErrorCall) ) import qualified Data.HashSet as HS import qualified Data.Text as Text diff --git a/src/Nix/Effects/Basic.hs b/src/Nix/Effects/Basic.hs index 84de74f7..d5e98ca0 100644 --- a/src/Nix/Effects/Basic.hs +++ b/src/Nix/Effects/Basic.hs @@ -2,7 +2,7 @@ module Nix.Effects.Basic where -import Prelude hiding ( head +import Nix.Prelude hiding ( head ) import Relude.Unsafe ( head ) import GHC.Exception ( ErrorCall(ErrorCall) ) diff --git a/src/Nix/Effects/Derivation.hs b/src/Nix/Effects/Derivation.hs index 45130ad5..fe098902 100644 --- a/src/Nix/Effects/Derivation.hs +++ b/src/Nix/Effects/Derivation.hs @@ -5,7 +5,7 @@ module Nix.Effects.Derivation ( defaultDerivationStrict ) where -import Prelude hiding ( readFile ) +import Nix.Prelude hiding ( readFile ) import GHC.Exception ( ErrorCall(ErrorCall) ) import Data.Char ( isAscii , isAlphaNum diff --git a/src/Nix/Eval.hs b/src/Nix/Eval.hs index e78ee8a3..2728ca1d 100644 --- a/src/Nix/Eval.hs +++ b/src/Nix/Eval.hs @@ -3,9 +3,9 @@ {-# language RankNTypes #-} - module Nix.Eval where +import Nix.Prelude import Relude.Extra ( set ) import Control.Monad ( foldM ) import Control.Monad.Fix ( MonadFix ) diff --git a/src/Nix/Exec.hs b/src/Nix/Exec.hs index 84a57db8..3f9dc07e 100644 --- a/src/Nix/Exec.hs +++ b/src/Nix/Exec.hs @@ -12,7 +12,7 @@ module Nix.Exec where -import Prelude hiding ( putStr +import Nix.Prelude hiding ( putStr , putStrLn , print ) @@ -44,7 +44,7 @@ import Nix.Value.Monad import Prettyprinter import qualified Text.Show.Pretty as PS -#ifdef MIN_VERSION_ghc_datasize +#ifdef MIN_VERSION_ghc_datasize import GHC.DataSize #endif diff --git a/src/Nix/Expr/Shorthands.hs b/src/Nix/Expr/Shorthands.hs index 7e0cd7c9..bddf4d7b 100644 --- a/src/Nix/Expr/Shorthands.hs +++ b/src/Nix/Expr/Shorthands.hs @@ -1,10 +1,10 @@ - -- | Shorthands for making Nix expressions. -- -- Functions with an @F@ suffix return a more general type (base functor @F a@) without the outer -- 'Fix' wrapper that creates @a@. module Nix.Expr.Shorthands where +import Nix.Prelude import Data.Fix import Nix.Atoms import Nix.Expr.Types diff --git a/src/Nix/Expr/Strings.hs b/src/Nix/Expr/Strings.hs index d034ab5c..dcb7be95 100644 --- a/src/Nix/Expr/Strings.hs +++ b/src/Nix/Expr/Strings.hs @@ -1,7 +1,7 @@ - -- | Functions for manipulating nix strings. module Nix.Expr.Strings where +import Nix.Prelude import Relude.Unsafe as Unsafe -- Please, switch things to NonEmpty import Data.List ( dropWhileEnd diff --git a/src/Nix/Expr/Types.hs b/src/Nix/Expr/Types.hs index e3a5795b..ba66ad33 100644 --- a/src/Nix/Expr/Types.hs +++ b/src/Nix/Expr/Types.hs @@ -20,7 +20,8 @@ -- (additiona info for dev): Big use of TemplateHaskell in the module requires proper (top-down) organization of declarations. module Nix.Expr.Types where -import qualified Codec.Serialise as Serialise +import Nix.Prelude +import qualified Codec.Serialise as Serialise import Codec.Serialise ( Serialise ) import Control.DeepSeq ( NFData1(..) ) import Data.Aeson diff --git a/src/Nix/Expr/Types/Annotated.hs b/src/Nix/Expr/Types/Annotated.hs index a2c3209a..2eaf51d0 100644 --- a/src/Nix/Expr/Types/Annotated.hs +++ b/src/Nix/Expr/Types/Annotated.hs @@ -16,6 +16,7 @@ module Nix.Expr.Types.Annotated ) where +import Nix.Prelude import Codec.Serialise import Control.DeepSeq import Data.Aeson ( ToJSON(..) diff --git a/src/Nix/Frames.hs b/src/Nix/Frames.hs index ba1cf6c9..c52cce3c 100644 --- a/src/Nix/Frames.hs +++ b/src/Nix/Frames.hs @@ -15,6 +15,7 @@ module Nix.Frames ) where +import Nix.Prelude import Data.Typeable hiding ( typeOf ) import Control.Monad.Catch ( MonadThrow(..) ) import qualified Text.Show diff --git a/src/Nix/Fresh.hs b/src/Nix/Fresh.hs index d40c0cec..fdd20c4a 100644 --- a/src/Nix/Fresh.hs +++ b/src/Nix/Fresh.hs @@ -8,6 +8,7 @@ module Nix.Fresh where +import Nix.Prelude import Control.Monad.Base ( MonadBase(..) ) import Control.Monad.Catch ( MonadCatch , MonadMask diff --git a/src/Nix/Fresh/Basic.hs b/src/Nix/Fresh/Basic.hs index 507cbde7..2c48924f 100644 --- a/src/Nix/Fresh/Basic.hs +++ b/src/Nix/Fresh/Basic.hs @@ -8,6 +8,7 @@ module Nix.Fresh.Basic where #if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail ( MonadFail ) #endif +import Nix.Prelude import Nix.Effects import Nix.Render import Nix.Fresh diff --git a/src/Nix/Json.hs b/src/Nix/Json.hs index a7666723..0f75181d 100644 --- a/src/Nix/Json.hs +++ b/src/Nix/Json.hs @@ -2,6 +2,7 @@ module Nix.Json where +import Nix.Prelude import qualified Data.Aeson as A import qualified Data.Aeson.Encoding as A import qualified Data.Vector as V diff --git a/src/Nix/Lint.hs b/src/Nix/Lint.hs index c435a5a3..2c207c91 100644 --- a/src/Nix/Lint.hs +++ b/src/Nix/Lint.hs @@ -11,6 +11,7 @@ module Nix.Lint where +import Nix.Prelude import Relude.Unsafe as Unsafe ( head ) import Control.Exception ( throw ) import GHC.Exception ( ErrorCall(ErrorCall) ) diff --git a/src/Nix/Normal.hs b/src/Nix/Normal.hs index 00fd7064..53e22691 100644 --- a/src/Nix/Normal.hs +++ b/src/Nix/Normal.hs @@ -10,6 +10,7 @@ -- And so do not converge into a normal form. module Nix.Normal where +import Nix.Prelude import Control.Monad.Free ( Free(..) ) import Data.Set ( member , insert diff --git a/src/Nix/Options.hs b/src/Nix/Options.hs index 5c5cf6d5..983d5f74 100644 --- a/src/Nix/Options.hs +++ b/src/Nix/Options.hs @@ -3,6 +3,7 @@ -- | Definitions & defaults for the CLI options module Nix.Options where +import Nix.Prelude import Data.Time -- 2021-07-15: NOTE: What these are? They need to be documented. diff --git a/src/Nix/Options/Parser.hs b/src/Nix/Options/Parser.hs index c05054b2..3aeb0e5a 100644 --- a/src/Nix/Options/Parser.hs +++ b/src/Nix/Options/Parser.hs @@ -3,6 +3,7 @@ -- | Code that configures presentation parser for the CLI options module Nix.Options.Parser where +import Nix.Prelude import Relude.Unsafe ( read ) import GHC.Err ( errorWithoutStackTrace ) import Data.Char ( isDigit ) diff --git a/src/Nix/Parser.hs b/src/Nix/Parser.hs index 5737c63a..64eac0ef 100644 --- a/src/Nix/Parser.hs +++ b/src/Nix/Parser.hs @@ -40,7 +40,7 @@ module Nix.Parser ) where -import Prelude hiding ( (<|>) +import Nix.Prelude hiding ( (<|>) , some , many ) diff --git a/src/Prelude.hs b/src/Nix/Prelude.hs similarity index 98% rename from src/Prelude.hs rename to src/Nix/Prelude.hs index fb6f5fdf..56fe6ead 100644 --- a/src/Prelude.hs +++ b/src/Nix/Prelude.hs @@ -3,7 +3,7 @@ -- between our custom code ("Nix.Utils") that shadows over the outside prelude that is in use ("Relude") -- "Prelude" module has a problem of being imported & used by other projects. -- "Nix.Utils" as a module with a regular name does not have that problem. -module Prelude +module Nix.Prelude ( module Nix.Utils , module Relude ) where diff --git a/src/Nix/Pretty.hs b/src/Nix/Pretty.hs index 2a18ca37..e7c83a15 100644 --- a/src/Nix/Pretty.hs +++ b/src/Nix/Pretty.hs @@ -1,12 +1,11 @@ {-# language CPP #-} {-# language AllowAmbiguousTypes #-} - {-# options_ghc -fno-warn-name-shadowing #-} module Nix.Pretty where -import Prelude hiding ( toList, group ) +import Nix.Prelude hiding ( toList, group ) import Control.Monad.Free ( Free(Free) ) import Data.Fix ( Fix(..) , foldFix ) diff --git a/src/Nix/Reduce.hs b/src/Nix/Reduce.hs index 4e69b3c1..a410a9b3 100644 --- a/src/Nix/Reduce.hs +++ b/src/Nix/Reduce.hs @@ -20,6 +20,7 @@ module Nix.Reduce , reducingEvalExpr ) where +import Nix.Prelude import Control.Monad.Catch ( MonadCatch(catch) ) #if !MIN_VERSION_base(4,13,0) import Prelude hiding ( fail ) diff --git a/src/Nix/Render.hs b/src/Nix/Render.hs index da65defb..e6b6196e 100644 --- a/src/Nix/Render.hs +++ b/src/Nix/Render.hs @@ -9,6 +9,7 @@ module Nix.Render where +import Nix.Prelude import qualified Data.Set as Set import Nix.Utils.Fix1 ( Fix1T , MonadFix1T @@ -24,7 +25,7 @@ import qualified Data.Text as Text class (MonadFail m, MonadIO m) => MonadFile m where readFile :: Path -> m Text default readFile :: (MonadTrans t, MonadIO m', MonadFile m', m ~ t m') => Path -> m Text - readFile = liftIO . Prelude.readFile + readFile = liftIO . Nix.Prelude.readFile listDirectory :: Path -> m [Path] default listDirectory :: (MonadTrans t, MonadFile m', m ~ t m') => Path -> m [Path] listDirectory = lift . listDirectory @@ -51,7 +52,7 @@ class (MonadFail m, MonadIO m) => MonadFile m where getSymbolicLinkStatus = lift . getSymbolicLinkStatus instance MonadFile IO where - readFile = Prelude.readFile + readFile = Nix.Prelude.readFile listDirectory = coerce S.listDirectory getCurrentDirectory = coerce S.getCurrentDirectory canonicalizePath = coerce S.canonicalizePath diff --git a/src/Nix/Render/Frame.hs b/src/Nix/Render/Frame.hs index 9bb70eeb..c4d8e2dc 100644 --- a/src/Nix/Render/Frame.hs +++ b/src/Nix/Render/Frame.hs @@ -9,7 +9,7 @@ -- | Code for rendering/representation of the messages packaged with their context (Frames). module Nix.Render.Frame where -import Prelude hiding ( Comparison ) +import Nix.Prelude hiding ( Comparison ) import GHC.Exception ( ErrorCall ) import Data.Fix ( Fix(..) ) import Nix.Eval hiding ( addMetaInfo ) diff --git a/src/Nix/Scope.hs b/src/Nix/Scope.hs index d9de14a3..53693333 100644 --- a/src/Nix/Scope.hs +++ b/src/Nix/Scope.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE UndecidableInstances #-} +{-# language UndecidableInstances #-} {-# language AllowAmbiguousTypes #-} {-# language ConstraintKinds #-} {-# language FunctionalDependencies #-} @@ -6,6 +6,7 @@ module Nix.Scope where +import Nix.Prelude import qualified Data.HashMap.Lazy as M import qualified Text.Show import Lens.Family2 diff --git a/src/Nix/Standard.hs b/src/Nix/Standard.hs index d197dd5f..5af000b4 100644 --- a/src/Nix/Standard.hs +++ b/src/Nix/Standard.hs @@ -8,6 +8,7 @@ module Nix.Standard where +import Nix.Prelude import Control.Comonad ( Comonad ) import Control.Comonad.Env ( ComonadEnv ) import Control.Monad.Catch ( MonadThrow diff --git a/src/Nix/String.hs b/src/Nix/String.hs index 00fdd977..8e43ed62 100644 --- a/src/Nix/String.hs +++ b/src/Nix/String.hs @@ -32,6 +32,7 @@ where +import Nix.Prelude hiding ( Type, TVar ) import Control.Monad.Writer ( WriterT(..), MonadWriter(tell)) import qualified Data.HashMap.Lazy as M import qualified Data.HashSet as S diff --git a/src/Nix/String/Coerce.hs b/src/Nix/String/Coerce.hs index 6ab89de6..3c18a5b7 100644 --- a/src/Nix/String/Coerce.hs +++ b/src/Nix/String/Coerce.hs @@ -2,6 +2,7 @@ module Nix.String.Coerce where +import Nix.Prelude import Control.Monad.Catch ( MonadThrow ) import GHC.Exception ( ErrorCall(ErrorCall) ) import qualified Data.HashMap.Lazy as M diff --git a/src/Nix/TH.hs b/src/Nix/TH.hs index 07c41283..5dc9a290 100644 --- a/src/Nix/TH.hs +++ b/src/Nix/TH.hs @@ -5,6 +5,7 @@ module Nix.TH where +import Nix.Prelude import Data.Generics.Aliases ( extQ ) import qualified Data.Set as Set import Language.Haskell.TH diff --git a/src/Nix/Thunk.hs b/src/Nix/Thunk.hs index ccfbe2f8..c252a792 100644 --- a/src/Nix/Thunk.hs +++ b/src/Nix/Thunk.hs @@ -4,6 +4,7 @@ module Nix.Thunk where +import Nix.Prelude import Control.Monad.Trans.Writer ( WriterT ) import qualified Text.Show diff --git a/src/Nix/Thunk/Basic.hs b/src/Nix/Thunk/Basic.hs index ace35da6..08d59a61 100644 --- a/src/Nix/Thunk/Basic.hs +++ b/src/Nix/Thunk/Basic.hs @@ -10,6 +10,7 @@ module Nix.Thunk.Basic , MonadBasicThunk ) where +import Nix.Prelude import Control.Monad.Ref ( MonadRef(Ref, newRef, readRef, writeRef) , MonadAtomicRef(atomicModifyRef) ) diff --git a/src/Nix/Type/Assumption.hs b/src/Nix/Type/Assumption.hs index 9a10e98e..0a39e34f 100644 --- a/src/Nix/Type/Assumption.hs +++ b/src/Nix/Type/Assumption.hs @@ -1,6 +1,7 @@ +{-# language TypeFamilies #-} + -- | Basing on the Nix (Hindley–Milner) type system (that provides decidable type inference): -- gathering assumptions (inference evidence) about polymorphic types. -{-# language TypeFamilies #-} module Nix.Type.Assumption ( Assumption(..) , empty @@ -13,7 +14,7 @@ module Nix.Type.Assumption ) where -import Prelude hiding ( Type +import Nix.Prelude hiding ( Type , empty ) @@ -36,6 +37,7 @@ instance One Assumption where type OneItem Assumption = (VarName, Type) one vt = Assumption $ one vt +-- 2022-01-12: NOTE: `empty` implies Alternative. Either have Alternative or use `mempty` empty :: Assumption empty = Assumption mempty diff --git a/src/Nix/Type/Env.hs b/src/Nix/Type/Env.hs index 4cb83e23..be7b208b 100644 --- a/src/Nix/Type/Env.hs +++ b/src/Nix/Type/Env.hs @@ -1,4 +1,5 @@ {-# language TypeFamilies #-} + module Nix.Type.Env ( Env(..) , empty @@ -15,7 +16,7 @@ module Nix.Type.Env ) where -import Prelude hiding ( empty +import Nix.Prelude hiding ( empty , toList , fromList ) diff --git a/src/Nix/Type/Infer.hs b/src/Nix/Type/Infer.hs index 72293d1c..a23a0af3 100644 --- a/src/Nix/Type/Infer.hs +++ b/src/Nix/Type/Infer.hs @@ -18,14 +18,14 @@ module Nix.Type.Infer ) where +import Nix.Prelude hiding ( Constraint + , Type + , TVar + ) import Control.Monad.Catch ( MonadThrow(..) , MonadCatch(..) ) import Control.Monad.Except ( MonadError(throwError,catchError) ) -import Prelude hiding ( Type - , TVar - , Constraint - ) import Control.Monad.Logic hiding ( fail ) import Control.Monad.Reader ( MonadFix ) import Control.Monad.Ref ( MonadAtomicRef(..) @@ -58,10 +58,6 @@ import Nix.String import Nix.Scope import Nix.Type.Assumption hiding ( extend ) import qualified Nix.Type.Assumption as Assumption - ( remove - , lookup - , keys - ) import Nix.Type.Env import qualified Nix.Type.Env as Env import Nix.Type.Type diff --git a/src/Nix/Type/Type.hs b/src/Nix/Type/Type.hs index cf92ad8b..bc7acbbd 100644 --- a/src/Nix/Type/Type.hs +++ b/src/Nix/Type/Type.hs @@ -3,7 +3,7 @@ -- Therefore -> from this the type inference follows. module Nix.Type.Type where -import Prelude hiding (Type, TVar) +import Nix.Prelude hiding ( Type, TVar ) import Nix.Expr.Types -- | Hindrey-Milner type interface diff --git a/src/Nix/Unused.hs b/src/Nix/Unused.hs index e9405987..58a96bfa 100644 --- a/src/Nix/Unused.hs +++ b/src/Nix/Unused.hs @@ -8,6 +8,7 @@ module Nix.Unused where +import Nix.Prelude import Control.Monad.Free ( Free(..) ) import Data.Fix ( Fix(..) ) import Lens.Family2.TH ( makeLensesBy ) diff --git a/src/Nix/Utils.hs b/src/Nix/Utils.hs index 63d9f721..8f53b3a7 100644 --- a/src/Nix/Utils.hs +++ b/src/Nix/Utils.hs @@ -1,4 +1,3 @@ -{-# language NoImplicitPrelude #-} {-# language CPP #-} {-# language GeneralizedNewtypeDeriving #-} diff --git a/src/Nix/Utils/Fix1.hs b/src/Nix/Utils/Fix1.hs index bf2f3686..eebae4c8 100644 --- a/src/Nix/Utils/Fix1.hs +++ b/src/Nix/Utils/Fix1.hs @@ -7,13 +7,15 @@ module Nix.Utils.Fix1 where +import Nix.Prelude import Control.Monad.Fix ( MonadFix ) import Control.Monad.Ref ( MonadAtomicRef(..) , MonadRef(..) ) import Control.Monad.Catch ( MonadCatch , MonadMask - , MonadThrow ) + , MonadThrow + ) -- | The fixpoint combinator. -- Courtesy of Gregory Malecha. diff --git a/src/Nix/Value.hs b/src/Nix/Value.hs index 3b33ce4f..aafdc25a 100644 --- a/src/Nix/Value.hs +++ b/src/Nix/Value.hs @@ -13,6 +13,7 @@ module Nix.Value where +import Nix.Prelude import Control.Comonad ( Comonad , extract ) diff --git a/src/Nix/Value/Equal.hs b/src/Nix/Value/Equal.hs index 18c84272..556d9d18 100644 --- a/src/Nix/Value/Equal.hs +++ b/src/Nix/Value/Equal.hs @@ -6,7 +6,7 @@ module Nix.Value.Equal where -import Prelude hiding ( Comparison ) +import Nix.Prelude hiding ( Comparison ) import Control.Comonad ( Comonad(extract)) import Control.Monad.Free ( Free(Pure,Free) ) import Control.Monad.Trans.Except ( throwE ) diff --git a/src/Nix/Value/Monad.hs b/src/Nix/Value/Monad.hs index dd040df2..4a818d67 100644 --- a/src/Nix/Value/Monad.hs +++ b/src/Nix/Value/Monad.hs @@ -1,4 +1,3 @@ - module Nix.Value.Monad where -- * @MonadValue@ - a main implementation class diff --git a/src/Nix/Var.hs b/src/Nix/Var.hs index 5f789e2a..acb9a9a5 100644 --- a/src/Nix/Var.hs +++ b/src/Nix/Var.hs @@ -7,6 +7,7 @@ module Nix.Var () where +import Nix.Prelude import Control.Monad.Ref import Data.GADT.Compare ( GEq(..) ) import Data.STRef ( STRef ) diff --git a/src/Nix/XML.hs b/src/Nix/XML.hs index d1164e8e..3406db8b 100644 --- a/src/Nix/XML.hs +++ b/src/Nix/XML.hs @@ -1,8 +1,8 @@ - module Nix.XML ( toXML ) where +import Nix.Prelude import qualified Data.HashMap.Lazy as M import Nix.Atoms import Nix.Expr.Types diff --git a/tests/EvalTests.hs b/tests/EvalTests.hs index 8329eda8..5caef884 100644 --- a/tests/EvalTests.hs +++ b/tests/EvalTests.hs @@ -4,8 +4,12 @@ {-# options_ghc -Wno-missing-signatures #-} -module EvalTests (tests, genEvalCompareTests) where +module EvalTests + ( tests + , genEvalCompareTests + ) where +import Nix.Prelude import Control.Monad.Catch import Data.List ((\\)) import qualified Data.Set as S diff --git a/tests/Main.hs b/tests/Main.hs index 658bfe2f..2baff154 100644 --- a/tests/Main.hs +++ b/tests/Main.hs @@ -2,6 +2,7 @@ module Main where +import Nix.Prelude import Relude (force) import Relude.Unsafe (read) import qualified Control.Exception as Exc diff --git a/tests/NixLanguageTests.hs b/tests/NixLanguageTests.hs index aef7abd7..95cd89e8 100644 --- a/tests/NixLanguageTests.hs +++ b/tests/NixLanguageTests.hs @@ -1,6 +1,6 @@ - module NixLanguageTests (genTests) where +import Nix.Prelude import Control.Exception import GHC.Err ( errorWithoutStackTrace ) import Control.Monad.ST diff --git a/tests/ParserTests.hs b/tests/ParserTests.hs index 963e971a..7acdf52a 100644 --- a/tests/ParserTests.hs +++ b/tests/ParserTests.hs @@ -10,7 +10,7 @@ module ParserTests (tests) where -import Prelude hiding (($<)) +import Nix.Prelude hiding (($<)) import Data.Fix import NeatInterpolation (text) import Nix.Atoms diff --git a/tests/PrettyParseTests.hs b/tests/PrettyParseTests.hs index 77a99d9c..274cf26f 100644 --- a/tests/PrettyParseTests.hs +++ b/tests/PrettyParseTests.hs @@ -6,6 +6,7 @@ module PrettyParseTests where +import Nix.Prelude import Data.Algorithm.Diff import Data.Algorithm.DiffOutput import Data.Char diff --git a/tests/PrettyTests.hs b/tests/PrettyTests.hs index 0af00726..3297d0eb 100644 --- a/tests/PrettyTests.hs +++ b/tests/PrettyTests.hs @@ -1,6 +1,8 @@ {-# language TemplateHaskell #-} -module PrettyTests (tests) where +module PrettyTests ( tests ) where + +import Nix.Prelude import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.TH diff --git a/tests/ReduceExprTests.hs b/tests/ReduceExprTests.hs index 5e54cd89..e56e92f6 100644 --- a/tests/ReduceExprTests.hs +++ b/tests/ReduceExprTests.hs @@ -1,5 +1,8 @@ {-# options_ghc -fno-warn-name-shadowing #-} + module ReduceExprTests (tests) where + +import Nix.Prelude import Test.Tasty import Test.Tasty.HUnit diff --git a/tests/TestCommon.hs b/tests/TestCommon.hs index bf9b9309..0973b1b2 100644 --- a/tests/TestCommon.hs +++ b/tests/TestCommon.hs @@ -1,6 +1,6 @@ - module TestCommon where +import Nix.Prelude import GHC.Err ( errorWithoutStackTrace ) import Control.Monad.Catch import Data.Time