@@ -66,7 +66,7 @@ performUsageAnalysis = do
6666 let (residDeps, (reachableNames, minUse)) = minimalUsage depMap
6767
6868 -- Print some debug info.
69− logLvl 3 $ "Reachable names:\n" ++ unlines (map show . S.toList $ reachableNames)
69+ logLvl 3 $ "Reachable names:\n" ++ unlines (map (indent . show) . S.toList $ reachableNames)
7070 logLvl 4 $ "Minimal usage:\n" ++ fmtUseMap minUse
7171 logLvl 5 $ "Residual deps:\n" ++ unlines (map fmtItem . M.toList $ residDeps)
7272
@@ -76,12 +76,13 @@ performUsageAnalysis = do
7676 return $ S.toList reachableNames
7777 where
7878 mainName = sNS (sUN "main") ["Main"]
79+ indent = (" " ++)
7980
8081 fmtItem :: (Cond, Set Node) -> String
81− fmtItem (cond, deps) = show (S.toList cond) ++ " -> " ++ show (S.toList deps)
82+ fmtItem (cond, deps) = indent $ show (S.toList cond) ++ " -> " ++ show (S.toList deps)
8283
8384 fmtUseMap :: UseMap -> String
84− fmtUseMap = unlines . map (\(n,is) -> show n ++ " -> " ++ show (IS.toList is)) . M.toList
85+ fmtUseMap = unlines . map (\(n,is) -> indent $ show n ++ " -> " ++ show (IS.toList is)) . M.toList
8586
8687 storeUsage :: (Name, IntSet) -> Idris ()
8788 storeUsage (n, args) = do
@@ -123,7 +124,6 @@ buildDepMap ci ctx mainName = addPostulates $ dfs S.empty M.empty [mainName]
123124 where
124125 -- mini-DSL for postulates
125126 (==>) ds rs = (S.fromList ds, S.fromList rs)
126− (.:) ms n = NS (sUN n) (map pack $ reverse ms)
127127 it n is = [(sUN n, Arg i) | i <- is]
128128 mn n is = [(MN 0 $ pack n, Arg i) | i <- is]
129129
@@ -136,8 +136,8 @@ buildDepMap ci ctx mainName = addPostulates $ dfs S.empty M.empty [mainName]
136136 [ [] ==> concat
137137 -- These two, Main.main and run__IO, are always evaluated
138138 -- but they evade analysis since they come from the seed term.
139− [ [(["Main"] .: "main", Result)]
140− , [(sUN "run__IO", Result)]
139+ [ [(sUN "main" `sNS` ["Main"], Result)]
140+ , [(sUN "run__IO", Result), (sUN "run__IO", Arg 0)]
141141
142142 -- these have been discovered as builtins but are not listed
143143 -- among Idris.Primitives.primitives