@@ -589,11 +589,14 @@ resolveImport currentModule importModule exps imps impQual =
589 updateImports m name = case M.lookup (Qualified impQual name) m of
589 updateImports m name = case M.lookup (Qualified impQual name) m of
590 Nothing -> return $ M.insert (Qualified impQual name) (Qualified (Just importModule) name) m
590 Nothing -> return $ M.insert (Qualified impQual name) (Qualified (Just importModule) name) m
591 Just (Qualified Nothing _) -> error "Invalid state in updateImports"
591 Just (Qualified Nothing _) -> error "Invalid state in updateImports"
592+ Just (Qualified (Just mn) _)
593+ | mn == importModule -> return m
592− Just (Qualified (Just mn) _) -> throwError . errorMessage $ err
594+ | otherwise -> throwError . errorMessage $ err
594− err = if currentModule `elem` [mn, importModule]
596+ err = if currentModule `elem` [mn, importModule]
595− then ConflictingImport (show name) importModule
597+ then ConflictingImport (show name) importModule
596− else ConflictingImports (show name) mn importModule
598+ else ConflictingImports (show name) mn importModule
598 -- The available values, types, and classes in the module being imported
601 -- The available values, types, and classes in the module being imported
599 values = exportedValues exps
602 values = exportedValues exps