@@ -56,7 +56,10 @@ moduleToJs (Module coms name imps exps foreigns decls) = do
5656 jsDecls <- mapM (bindToJs name) decls
5757 optimized <- T.traverse (T.traverse optimize) jsDecls
5858 let isModuleEmpty = null exps
59− let moduleBody = JSComment coms (JSStringLiteral "use strict") : jsImports ++ foreigns' ++ concat optimized
59+ comments <- not <$> asks optionsNoComments
60+ let strict = JSStringLiteral "use strict"
61+ let header = if comments && not (null coms) then JSComment coms strict else strict
62+ let moduleBody = header : jsImports ++ foreigns' ++ concat optimized
6063 let exps' = JSObjectLiteral $ map (runIdent &&& JSVar . identToJs) exps
6164 return $ case additional of
6265 MakeOptions -> moduleBody ++ [JSAssignment (JSAccessor "exports" (JSVar "module")) exps']