runUntilAll :: ComponentId -> Int -> [Int] -> Sim ()
runUntilAll cId s ss = case compare s (sum ss) of
  LT -> do (MM_ACK s') <- expect MemoryManager cId
           runUntilAll cId s (s':ss)
  _  -> return ()
runUntilAll :: ComponentId -> Int -> [Int] -> Sim ()
runUntilAll cId s ss = case compare s (sum ss) of
  LT -> do (MM_ACK s') <- expect MemoryManager cId
           runUntilAll cId s (s':ss)
  _  -> return ()
runUntilAll cId s ss = case compare s (sum ss) of
  LT -> do (MM_ACK s') <- expect MemoryManager cId
           runUntilAll cId s (s':ss)
  _  -> return ()