-{-
- -- Return: (a) CAFs used by this proc (b) a closure that will compute
- -- a new SRT for the procedure.
- let toTops topCAFEnv (topSRT, tops) =
- do let setSRT (topSRT, rst) g =
- do (topSRT, gs) <- setInfoTableSRT cafEnv topCAFEnv topSRT g
- return (topSRT, gs : rst)
- (topSRT, gs') <- run $ foldM setSRT (topSRT, []) gs'
- gs' <- mapM finishInfoTables (concat gs')
- return (topSRT, concat gs' : tops)
- return (localCAFs, toTops)
--}