@@ -39,7 +39,7 @@ findUnusedImports (Module _ _ _ mdecls _) env usedImps = do
39 imps <- findImports mdecls
39 imps <- findImports mdecls
40 forM_ (M.toAscList imps) $ \(mni, decls) -> unless (mni `elem` autoIncludes) $
40 forM_ (M.toAscList imps) $ \(mni, decls) -> unless (mni `elem` autoIncludes) $
41 forM_ decls $ \(ss, declType, qualifierName) -> censor (onErrorMessages $ addModuleLocError ss) $
41 forM_ decls $ \(ss, declType, qualifierName) -> censor (onErrorMessages $ addModuleLocError ss) $
42− let usedNames = mapMaybe (matchName (typeForDCtor mni) qualifierName) $ sugarNames ++ M.findWithDefault [] mni usedImps in
42+ let usedNames = mapMaybe (matchName (typeForDCtor mni) qualifierName) $ sugarNames mni ++ M.findWithDefault [] mni usedImps in
43 case declType of
43 case declType of
44 Implicit -> when (null usedNames) $ tell $ errorMessage $ UnusedImport mni
44 Implicit -> when (null usedNames) $ tell $ errorMessage $ UnusedImport mni
45 Explicit declrefs -> do
45 Explicit declrefs -> do
@@ -48,8 +48,9 @@ findUnusedImports (Module _ _ _ mdecls _) env usedImps = do
48 unless (null diff) $ tell $ errorMessage $ UnusedExplicitImport mni diff
48 unless (null diff) $ tell $ errorMessage $ UnusedExplicitImport mni diff
49 _ -> return ()
49 _ -> return ()
51− sugarNames :: [ Name ]
51+ sugarNames :: ModuleName -> [ Name ]
52− sugarNames = [ IdentName $ Qualified Nothing (Ident C.bind) ]
52+ sugarNames (ModuleName [ProperName n]) | n == C.prelude = [ IdentName $ Qualified Nothing (Ident C.bind) ]
54 autoIncludes :: [ ModuleName ]
55 autoIncludes :: [ ModuleName ]
55 autoIncludes = [ ModuleName [ProperName C.prim] ]
56 autoIncludes = [ ModuleName [ProperName C.prim] ]