@@ -66,7 +66,7 @@ run config rules = do
6666 , runtimeProvider = provider
6767 , runtimeStore = store
6868 , runtimeRoutes = rulesRoutes ruleSet
69− , runtimeUniverse = compilers
69+ , runtimeUniverse = M.fromList compilers
7070 }
7171 state = RuntimeState
7272 { runtimeDone = S.empty
@@ -97,7 +97,7 @@ data RuntimeRead = RuntimeRead
9797 , runtimeProvider :: Provider
9898 , runtimeStore :: Store
9999 , runtimeRoutes :: Routes
100− , runtimeUniverse :: [(Identifier, Compiler SomeItem)]
100+ , runtimeUniverse :: Map Identifier (Compiler SomeItem)
101101 }
102102
103103
@@ -133,12 +133,12 @@ scheduleOutOfDate = do
133133 facts <- runtimeFacts <$> get
134134 todo <- runtimeTodo <$> get
135135
136− let identifiers = map fst universe
136+ let identifiers = M.keys universe
137137 modified <- fmap S.fromList $ flip filterM identifiers $
138138 liftIO . resourceModified provider
139139 let (ood, facts', msgs) = outOfDate identifiers modified facts
140− todo' = M.fromList
141− [(id', c) | (id', c) <- universe, id' `S.member` ood]
140+ todo' = M.filterWithKey
141+ (\id' _ -> id' `S.member` ood) universe
142142
143143 -- Print messages
144144 mapM_ (Logger.debug logger) msgs
@@ -181,7 +181,7 @@ chase trail id'
181181 read' = CompilerRead
182182 { compilerUnderlying = id'
183183 , compilerProvider = provider
184− , compilerUniverse = map fst universe
184+ , compilerUniverse = M.keysSet universe
185185 , compilerRoutes = routes
186186 , compilerStore = store
187187 , compilerLogger = logger