@@ -15,7 +15,7 @@ import Control.Monad.Error.Class (MonadError(..))
1515import Control.Monad.Reader (MonadReader , asks )
1616import Control.Monad.Supply.Class
1717
18- import Data.List ((\\) , delete , intersect )
18+ import Data.List ((\\) , delete , intersect , nub )
1919import Data.Maybe (isNothing , fromMaybe )
2020import qualified Data.Foldable as F
2121import qualified Data.Map as M
@@ -51,7 +51,7 @@ moduleToJs (Module coms mn imps exps foreigns decls) foreign_ =
5151 rethrow (addHint (ErrorInModule mn)) $ do
5252 let usedNames = concatMap getNames decls
5353 let mnLookup = renameImports usedNames imps
54- jsImports <- T. traverse (importToJs mnLookup) . delete (ModuleName [ProperName C. prim]) . (\\ [mn]) $ map snd imps
54+ jsImports <- T. traverse (importToJs mnLookup) . delete (ModuleName [ProperName C. prim]) . (\\ [mn]) $ nub $ map snd imps
5555 let decls' = renameModules mnLookup decls
5656 jsDecls <- mapM bindToJs decls'
5757 optimized <- T. traverse (T. traverse optimize) jsDecls
@@ -89,7 +89,7 @@ moduleToJs (Module coms mn imps exps foreigns decls) foreign_ =
8989 in if mn' /= mn && mni `elem` used
9090 then let newName = freshModuleName 1 mn' used
9191 in go (M. insert mn' (ann, newName) acc) (Ident (runModuleName newName) : used) mns'
92- else go (M. insert mn' (ann, mn') acc) (mni : used) mns'
92+ else go (M. insert mn' (ann, mn') acc) used mns'
9393 go acc _ [] = acc
9494
9595 freshModuleName :: Integer -> ModuleName -> [Ident ] -> ModuleName
0 commit comments