HaRe-0.6: tools/base/Modules/SCMs.hs
module SCMs where
import OpTypes
import NewSCC
--import Assoc
import List(find)
--import Maybe(fromMaybe)
import Maybe(mapMaybe)
import HsModule
hsModulesToGraph mods = mods `zip` vals
where
vals = (mapMaybe (lkpInMods . hsImpFrom) . hsModImports) `map` mods
lkpInMods x = --fromMaybe (error $ "Missing module: "++show x) $
find ((== x) . hsModName) mods
scMods ms = map (map fst) . sccEq (eqBy hsModName) . hsModulesToGraph $ ms