@@ -25,7 +25,7 @@ module Language.PureScript.CodeGen.JS (
26import Data.Maybe (catMaybes, fromJust, fromMaybe)
26import Data.Maybe (catMaybes, fromJust, fromMaybe)
27import Data.Function (on)
27import Data.Function (on)
28−import Data.List (nub, (\\))
28+import Data.List (nub, (\\), delete)
30import Control.Monad (replicateM, forM)
30import Control.Monad (replicateM, forM)
31import Control.Applicative
31import Control.Applicative
@@ -43,6 +43,8 @@ import Language.PureScript.Environment
43import Language.PureScript.Supply
43import Language.PureScript.Supply
44import Language.PureScript.Traversals (sndM)
44import Language.PureScript.Traversals (sndM)
46+import qualified Language.PureScript.Constants as C
47-- Different types of modules which are supported
49-- Different types of modules which are supported
@@ -54,7 +56,7 @@ data ModuleType = CommonJS | Globals
55moduleToJs :: (Functor m, Applicative m, Monad m) => ModuleType -> Options -> Module -> Environment -> SupplyT m [JS]
57moduleToJs :: (Functor m, Applicative m, Monad m) => ModuleType -> Options -> Module -> Environment -> SupplyT m [JS]
56moduleToJs mt opts (Module name decls (Just exps)) env = do
58moduleToJs mt opts (Module name decls (Just exps)) env = do
57− let jsImports = map (importToJs mt opts) . (\\ [name]) . nub $ concatMap imports decls
59+ let jsImports = map (importToJs mt opts) . delete (ModuleName [ProperName C.prim]) . (\\ [name]) . nub $ concatMap imports decls
58 jsDecls <- mapM (\decl -> declToJs opts name decl env) decls
60 jsDecls <- mapM (\decl -> declToJs opts name decl env) decls
59 let optimized = concat $ map (map $ optimize opts) $ catMaybes jsDecls
61 let optimized = concat $ map (map $ optimize opts) $ catMaybes jsDecls
60 let isModuleEmpty = null optimized
62 let isModuleEmpty = null optimized