@@ -63,7 +63,7 @@ compile opts ms = do
63 modify (\s -> s { checkCurrentModule = Just moduleName })
63 modify (\s -> s { checkCurrentModule = Just moduleName })
64 Module moduleName <$> typeCheckAll mainModuleIdent moduleName decls
64 Module moduleName <$> typeCheckAll mainModuleIdent moduleName decls
65 regrouped <- createBindingGroupsModule . collapseBindingGroupsModule $ elaborated
65 regrouped <- createBindingGroupsModule . collapseBindingGroupsModule $ elaborated
66− let entryPoints = (ModuleName . return . ProperName) `map` optionsModules opts
66+ let entryPoints = (ModuleName . splitProperNames) `map` optionsModules opts
67 let elim = if null entryPoints then regrouped else eliminateDeadCode env entryPoints regrouped
67 let elim = if null entryPoints then regrouped else eliminateDeadCode env entryPoints regrouped
68 let js = mapMaybe (flip (moduleToJs opts) env) elim
68 let js = mapMaybe (flip (moduleToJs opts) env) elim
69 let exts = intercalate "\n" . map (flip moduleToPs env) $ elim
69 let exts = intercalate "\n" . map (flip moduleToPs env) $ elim
@@ -75,4 +75,8 @@ compile opts ms = do
75 _ -> return js
75 _ -> return js
76 return (prettyPrintJS [(wrapExportsContainer opts js')], exts, env)
76 return (prettyPrintJS [(wrapExportsContainer opts js')], exts, env)
78− mainModuleIdent = (ModuleName . return . ProperName) <$> optionsMain opts
78+ mainModuleIdent = ModuleName . splitProperNames <$> optionsMain opts
79+ splitProperNames s = case dropWhile (== '.') s of
81+ s' -> ProperName w : splitProperNames s''
82+ where (w, s'') = break (== '.') s'