module Main where import GHC import GHC.Paths import HscTypes main :: IO () main = do loadProj "Test.hs" loadProj :: FilePath -> IO () loadProj src = do modgutss <- runGhc (Just libdir) $ do flags <- getSessionDynFlags _ <- setSessionDynFlags flags target <- guessTarget src Nothing _ <- setTargets [target] _ <- load LoadAllTargets mod_graph <- getModuleGraph parsed_mods <- mapM parseModule mod_graph typed_mods <- mapM typecheckModule parsed_mods desug_mods <- mapM desugarModule typed_mods return $ map coreModule desug_mods let rules = map (\mg -> ( moduleNameString . moduleName $ mg_module mg , length $ mg_rules mg) ) modgutss print $ rules return ()