@@ -66,8 +66,6 @@ moduleToCpp env (Module _ mn imps _ foreigns decls) = do
66 let cppImports' = "PureScript" : cppImports
66 let cppImports' = "PureScript" : cppImports
67 cppDecls <- concat <$> mapM bindToCpp decls
67 cppDecls <- concat <$> mapM bindToCpp decls
68 optimized <- traverse optimize cppDecls
68 optimized <- traverse optimize cppDecls
69− -- datas <- datasToCpps env mn
70− synonyms <- synonymsToCpp env mn
71 let moduleHeader = fileBegin mn "HH"
69 let moduleHeader = fileBegin mn "HH"
72 ++ P.linebreak
70 ++ P.linebreak
73 ++ ((\i -> CppInclude i i) <$> cppImports')
71 ++ ((\i -> CppInclude i i) <$> cppImports')
@@ -78,7 +76,6 @@ moduleToCpp env (Module _ mn imps _ foreigns decls) = do
78 ++ P.linebreak
76 ++ P.linebreak
79 ++ [CppNamespace (runModuleName mn) $
77 ++ [CppNamespace (runModuleName mn) $
80 (CppUseNamespace <$> cppImports') ++ P.linebreak
78 (CppUseNamespace <$> cppImports') ++ P.linebreak
82 ++ toHeader optimized
79 ++ toHeader optimized
83 ++ toHeaderFns optimized
80 ++ toHeaderFns optimized
@@ -504,27 +501,9 @@ moduleToCpp env (Module _ mn imps _ foreigns decls) = do
505 -- Find a class in scope by name, retrieving its list of constraints, function names and types.
502 -- Find a class in scope by name, retrieving its list of constraints, function names and types.
507− findClass :: Qualified ProperName -> Maybe ([String], [T.Constraint], [(String, T.Type)])
504+ findClass :: Qualified (ProperName ClassName) -> Maybe ([String], [T.Constraint], [(String, T.Type)])
508 findClass name
505 findClass name
509 | Just (params, fns, constraints) <- M.lookup name (E.typeClasses env),
506 | Just (params, fns, constraints) <- M.lookup name (E.typeClasses env),
510 fns' <- (\(i,t) -> (runIdent i, t)) <$> fns
507 fns' <- (\(i,t) -> (runIdent i, t)) <$> fns
511 = Just (fst <$> params, constraints, (sortBy (compare `on` normalizedName . fst) fns'))
508 = Just (fst <$> params, constraints, (sortBy (compare `on` normalizedName . fst) fns'))
512 findClass _ = Nothing
509 findClass _ = Nothing
514−-------------------------------------------------------------------------------------------------
515−synonymsToCpp :: Monad m => E.Environment -> ModuleName -> m [Cpp]
516−-------------------------------------------------------------------------------------------------
518− | tcs <- E.typeClasses env,
519− ds@(_:_) <- M.toList
520− . M.filterWithKey (\k@(Qualified mn' _) _ -> mn' == Just mn && M.lookup k tcs == Nothing)
521− $ E.typeSynonyms env = do
522− let names' = qualifiedToStr mn (Ident . runProperName) . fst <$> ds
523− typs = replicate (length ds) (CppAny [])
524− syns = zip names' typs
525− cpps = toTypeAlias <$> syns
527− | otherwise = return []
529− toTypeAlias :: (String, CppType) -> Cpp
530− toTypeAlias (n, t) = CppTypeAlias (n, []) t []