diff --git a/hledger-lib/Hledger/Data/Amount.hs b/hledger-lib/Hledger/Data/Amount.hs index 59a231389..c5645b185 100644 --- a/hledger-lib/Hledger/Data/Amount.hs +++ b/hledger-lib/Hledger/Data/Amount.hs @@ -144,7 +144,8 @@ module Hledger.Data.Amount ( tests_Amount ) where -import Control.Applicative (liftA2) +import Prelude hiding (Applicative(..)) +import Control.Applicative (Applicative(..)) import Control.Monad (foldM) import Data.Char (isDigit) import Data.Decimal (DecimalRaw(..), decimalPlaces, normalizeDecimal, roundTo) diff --git a/hledger-lib/Hledger/Data/Balancing.hs b/hledger-lib/Hledger/Data/Balancing.hs index fa080eaa1..31595c5c9 100644 --- a/hledger-lib/Hledger/Data/Balancing.hs +++ b/hledger-lib/Hledger/Data/Balancing.hs @@ -26,13 +26,16 @@ module Hledger.Data.Balancing ) where +import Control.Monad (forM, forM_, when, unless) import Control.Monad.Except (ExceptT(..), runExceptT, throwError) import "extra" Control.Monad.Extra (whenM) -import Control.Monad.Reader as R +import Control.Monad.Reader as R (ReaderT, reader, runReaderT, ask, asks) import Control.Monad.ST (ST, runST) +import Control.Monad.Trans.Class (lift) import Data.Array.ST (STArray, getElems, newListArray, writeArray) import Data.Foldable (asum) import Data.Function ((&)) +import Data.Functor.Compat (void) import qualified Data.HashTable.Class as H (toList) import qualified Data.HashTable.ST.Cuckoo as H import Data.List (partition, sortOn) diff --git a/hledger-lib/Hledger/Data/Dates.hs b/hledger-lib/Hledger/Data/Dates.hs index 52bd7439e..d6caad72b 100644 --- a/hledger-lib/Hledger/Data/Dates.hs +++ b/hledger-lib/Hledger/Data/Dates.hs @@ -82,10 +82,11 @@ module Hledger.Data.Dates ( , intervalBoundaryBefore) where -import qualified Control.Monad.Fail as Fail (MonadFail, fail) -import Control.Applicative (liftA2) +import Prelude hiding (Applicative(..)) +import Control.Applicative (Applicative(..)) import Control.Applicative.Permutations import Control.Monad (guard, unless) +import qualified Control.Monad.Fail as Fail (MonadFail, fail) import Data.Char (digitToInt, isDigit, ord) import Data.Default (def) import Data.Foldable (asum) diff --git a/hledger-lib/Hledger/Data/TransactionModifier.hs b/hledger-lib/Hledger/Data/TransactionModifier.hs index 61088cb1c..72b9775a6 100644 --- a/hledger-lib/Hledger/Data/TransactionModifier.hs +++ b/hledger-lib/Hledger/Data/TransactionModifier.hs @@ -12,7 +12,8 @@ module Hledger.Data.TransactionModifier ( ) where -import Control.Applicative ((<|>), liftA2) +import Prelude hiding (Applicative(..)) +import Control.Applicative (Applicative(..), (<|>)) import qualified Data.Map as M import Data.Maybe (catMaybes) import qualified Data.Text as T diff --git a/hledger-lib/Hledger/Read.hs b/hledger-lib/Hledger/Read.hs index ce4de8109..ad81471a5 100644 --- a/hledger-lib/Hledger/Read.hs +++ b/hledger-lib/Hledger/Read.hs @@ -53,7 +53,8 @@ module Hledger.Read ( --- ** imports import qualified Control.Exception as C import Control.Monad (unless, when) -import "mtl" Control.Monad.Except (ExceptT(..), runExceptT, liftIO, MonadIO) +import "mtl" Control.Monad.Except (ExceptT(..), runExceptT) +import Control.Monad.IO.Class (MonadIO, liftIO) import Data.Default (def) import Data.Foldable (asum) import Data.List (group, sort, sortBy) diff --git a/hledger-lib/Hledger/Read/Common.hs b/hledger-lib/Hledger/Read/Common.hs index b03fd997e..2cdc88789 100644 --- a/hledger-lib/Hledger/Read/Common.hs +++ b/hledger-lib/Hledger/Read/Common.hs @@ -119,15 +119,18 @@ where --- ** imports import Control.Applicative.Permutations (runPermutation, toPermutationWithDefault) +import Control.Monad (foldM, liftM2, when, unless, (>=>), (<=<)) import qualified Control.Monad.Fail as Fail (fail) import Control.Monad.Except (ExceptT(..), liftEither, withExceptT) -import Control.Monad.State.Strict hiding (fail) +import Control.Monad.IO.Class (MonadIO, liftIO) +import Control.Monad.State.Strict (MonadState, evalStateT, modify', get, put) +import Control.Monad.Trans.Class (lift) import Data.Bifunctor (bimap, second) import Data.Char (digitToInt, isDigit, isSpace) import Data.Decimal (DecimalRaw (Decimal), Decimal) import Data.Either (lefts, rights) import Data.Function ((&)) -import Data.Functor ((<&>), ($>)) +import Data.Functor ((<&>), ($>), void) import Data.List (find, genericReplicate, union) import Data.List.NonEmpty (NonEmpty(..)) import Data.Maybe (catMaybes, fromMaybe, isJust, listToMaybe) diff --git a/hledger-lib/Hledger/Read/CsvReader.hs b/hledger-lib/Hledger/Read/CsvReader.hs index a3dbd5bce..49d392a92 100644 --- a/hledger-lib/Hledger/Read/CsvReader.hs +++ b/hledger-lib/Hledger/Read/CsvReader.hs @@ -35,7 +35,8 @@ module Hledger.Read.CsvReader ( where --- ** imports -import Control.Applicative (liftA2) +import Prelude hiding (Applicative(..)) +import Control.Applicative (Applicative(..)) import Control.Monad (unless, when, void) import Control.Monad.Except (ExceptT(..), liftEither, throwError) import qualified Control.Monad.Fail as Fail diff --git a/hledger-lib/Hledger/Reports/ReportOptions.hs b/hledger-lib/Hledger/Reports/ReportOptions.hs index 270cca4ce..df54b6734 100644 --- a/hledger-lib/Hledger/Reports/ReportOptions.hs +++ b/hledger-lib/Hledger/Reports/ReportOptions.hs @@ -64,7 +64,8 @@ module Hledger.Reports.ReportOptions ( ) where -import Control.Applicative (Const(..), (<|>), liftA2) +import Prelude hiding (Applicative(..)) +import Control.Applicative (Applicative(..), Const(..), (<|>)) import Control.Monad ((<=<), guard, join) import Data.Char (toLower) import Data.Either (fromRight) diff --git a/hledger-lib/Hledger/Utils/Test.hs b/hledger-lib/Hledger/Utils/Test.hs index 7bc4603b8..bda50edf4 100644 --- a/hledger-lib/Hledger/Utils/Test.hs +++ b/hledger-lib/Hledger/Utils/Test.hs @@ -20,7 +20,8 @@ module Hledger.Utils.Test ( ) where -import Control.Monad.Except (ExceptT(..), liftEither, runExceptT, withExceptT, unless) +import Control.Monad (unless) +import Control.Monad.Except (ExceptT(..), liftEither, runExceptT, withExceptT) import Control.Monad.State.Strict (StateT, evalStateT, execStateT) import Data.Default (Default(..)) import Data.List (isInfixOf) diff --git a/hledger-lib/Text/Megaparsec/Custom.hs b/hledger-lib/Text/Megaparsec/Custom.hs index 8efbaa30f..b6288bb24 100644 --- a/hledger-lib/Text/Megaparsec/Custom.hs +++ b/hledger-lib/Text/Megaparsec/Custom.hs @@ -50,8 +50,9 @@ module Text.Megaparsec.Custom ( ) where -import Control.Monad.Except +import Control.Monad.Except (ExceptT, MonadError, catchError, throwError) import Control.Monad.State.Strict (StateT, evalStateT) +import Control.Monad.Trans.Class (lift) import qualified Data.List.NonEmpty as NE import Data.Monoid (Alt(..)) import qualified Data.Set as S diff --git a/hledger-lib/package.yaml b/hledger-lib/package.yaml index 7023fe384..b4095efd6 100644 --- a/hledger-lib/package.yaml +++ b/hledger-lib/package.yaml @@ -21,7 +21,7 @@ github: simonmichael/hledger homepage: http://hledger.org bug-reports: http://bugs.hledger.org stability: stable -tested-with: GHC==8.10.7, GHC==9.0.2, GHC==9.2.4 +tested-with: GHC==8.10.7, GHC==9.0.2, GHC==9.2.7, GHC==9.4.4 extra-source-files: - CHANGES.md @@ -32,7 +32,8 @@ extra-source-files: #data-files: dependencies: -- base >=4.14 && <4.18 +- base >=4.14 && <4.19 +- base-compat - aeson >=1 - aeson-pretty - ansi-terminal >=0.9