@@ -28,20 +28,36 @@ module Nix.Type.Infer
2828 )
2929where
3030
31- import Control.Applicative
32- import qualified Control.Applicative as Applicative
33- import Control.Arrow
34- import Control.Monad.Catch
35- import Control.Monad.Except
31+ import Control.Applicative ( Alternative
32+ , empty
33+ )
34+ import Data.Bifunctor ( Bifunctor (first ) )
35+ import Control.Monad.Catch ( Exception (fromException , toException )
36+ , MonadThrow (.. )
37+ , MonadCatch (.. )
38+ )
39+ import Control.Monad.Except ( ExceptT
40+ , MonadError (.. ), runExceptT
41+ )
3642#if !MIN_VERSION_base(4,13,0)
3743import Prelude hiding ( fail )
3844import Control.Monad.Fail
3945#endif
40- import Control.Monad.Logic
41- import Control.Monad.Reader
46+ import Control.Monad.Logic hiding ( fail )
47+ import Control.Monad.Reader ( MonadReader (local )
48+ , ReaderT (.. )
49+ , MonadFix
50+ )
4251import Control.Monad.Ref
43- import Control.Monad.ST
44- import Control.Monad.State.Strict
52+ import Control.Monad.ST ( ST
53+ , runST
54+ )
55+ import Control.Monad.State.Strict ( modify
56+ , evalState
57+ , evalStateT
58+ , MonadState (put , get )
59+ , StateT (runStateT )
60+ )
4561import Data.Fix ( foldFix )
4662import Data.Foldable ( foldl'
4763 , foldrM
@@ -68,7 +84,7 @@ import Nix.Fresh
6884import Nix.String
6985import Nix.Scope
7086import qualified Nix.Type.Assumption as As
71- import Nix.Type.Env
87+ import Nix.Type.Env hiding ( empty )
7288import qualified Nix.Type.Env as Env
7389import Nix.Type.Type
7490import Nix.Utils
@@ -82,8 +98,10 @@ import Nix.Var
8298newtype InferT s m a =
8399 InferT
84100 { getInfer ::
85- ReaderT (Set. Set TVar , Scopes (InferT s m ) (Judgment s ))
86- (StateT InferState (ExceptT InferError m )) a
101+ ReaderT
102+ (Set. Set TVar , Scopes (InferT s m ) (Judgment s ))
103+ (StateT InferState (ExceptT InferError m ))
104+ a
87105 }
88106 deriving
89107 ( Functor
@@ -664,7 +682,7 @@ instance MonadTrans Solver where
664682 lift = Solver . lift . lift
665683
666684instance Monad m => MonadError TypeError (Solver m ) where
667- throwError err = Solver $ lift (modify (err : )) *> Applicative. empty
685+ throwError err = Solver $ lift (modify (err : )) *> empty
668686 catchError _ _ = error " This is never used"
669687
670688runSolver :: Monad m => Solver m a -> m (Either [TypeError ] [a ])
0 commit comments