let topologically_iter_on_functions = let module T = Graph.Topological.Make(SGraph) in fun f -> (* compute on need *) if SCQueue.is_empty () then T.iter SCQueue.add (callgraph ()); SCQueue.iter f