@@ -79,8 +79,8 @@ lintImports (Module _ _ mn mdecls mexports) env usedImps = do
80 let scope = maybe nullImports (\(_, imps, _) -> imps) (M.lookup mn env)
80 let scope = maybe nullImports (\(_, imps, _) -> imps) (M.lookup mn env)
81 usedImps' = foldr (elaborateUsed scope) usedImps exportedModules
81 usedImps' = foldr (elaborateUsed scope) usedImps exportedModules
82− numImplicitImports = getSum $ foldMap (Sum . countImplicitImports) mdecls
82+ numOpenImports = getSum $ foldMap (Sum . countOpenImports) mdecls
83− allowImplicit = numImplicitImports == 1
83+ allowImplicit = numOpenImports == 1
85 imps <- M.toAscList <$> findImports mdecls
85 imps <- M.toAscList <$> findImports mdecls
@@ -106,10 +106,11 @@ lintImports (Module _ _ mn mdecls mexports) env usedImps = do
109− countImplicitImports :: Declaration -> Int
109+ countOpenImports :: Declaration -> Int
110− countImplicitImports (ImportDeclaration mn' Implicit _ _) | not (isPrim mn') = 1
110+ countOpenImports (ImportDeclaration mn' Implicit Nothing _) | not (isPrim mn') = 1
111+ countOpenImports (ImportDeclaration mn' (Hiding _) Nothing _) | not (isPrim mn') = 1
111− countImplicitImports (PositionedDeclaration _ _ d) = countImplicitImports d
112+ countOpenImports (PositionedDeclaration _ _ d) = countOpenImports d
112− countImplicitImports _ = 0
113+ countOpenImports _ = 0
114 -- Checks whether a module is the Prim module - used to suppress any checks
115 -- Checks whether a module is the Prim module - used to suppress any checks
115 -- made, as Prim is always implicitly imported.
116 -- made, as Prim is always implicitly imported.