@@ -31,7 +31,7 @@ import Data.Foldable (traverse_, for_)
31import Control.Arrow (first)
31import Control.Arrow (first)
32import Control.Monad
32import Control.Monad
33import Control.Monad.Error.Class (MonadError(..))
33import Control.Monad.Error.Class (MonadError(..))
34−import Control.Monad.Writer (MonadWriter(..), censor)
34+import Control.Monad.Writer (MonadWriter(..))
36import qualified Data.Map as M
36import qualified Data.Map as M
@@ -53,7 +53,7 @@ findImports = foldM (go Nothing) M.empty
53 checkImportRefType typ
53 checkImportRefType typ
54 let imp = (pos, typ, qual)
54 let imp = (pos, typ, qual)
55 return $ M.insert mn (maybe [imp] (imp :) (mn `M.lookup` result)) result
55 return $ M.insert mn (maybe [imp] (imp :) (mn `M.lookup` result)) result
56− go _ result (PositionedDeclaration pos _ d) = rethrowWithPosition pos $ go (Just pos) result d
56+ go _ result (PositionedDeclaration pos _ d) = warnAndRethrowWithPosition pos $ go (Just pos) result d
57 go _ result _ = return result
57 go _ result _ = return result
59 -- Ensure that classes don't appear in an `import X hiding (...)`
59 -- Ensure that classes don't appear in an `import X hiding (...)`
@@ -69,7 +69,7 @@ findImports = foldM (go Nothing) M.empty
70resolveImports :: (Applicative m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => Env -> Module -> m Imports
70resolveImports :: (Applicative m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => Env -> Module -> m Imports
71resolveImports env (Module _ _ currentModule decls _) =
71resolveImports env (Module _ _ currentModule decls _) =
72− censor (addHint (ErrorInModule currentModule)) $ do
72+ warnAndRethrow (addHint (ErrorInModule currentModule)) $ do
73 imports <- findImports decls
73 imports <- findImports decls
75 for_ (M.toList imports) $ \(mn, imps) -> do
75 for_ (M.toList imports) $ \(mn, imps) -> do