src/Tools/code/code_funcgr.ML
changeset 24713 8b3b6d09ef40
parent 24423 ae9cd0e92423
child 24835 8c26128f8997
equal deleted inserted replaced
24712:64ed05609568 24713:8b3b6d09ef40
   326   in raw_eval thy f' end;
   326   in raw_eval thy f' end;
   327 
   327 
   328 end; (*local*)
   328 end; (*local*)
   329 
   329 
   330 structure Funcgr = CodeDataFun
   330 structure Funcgr = CodeDataFun
   331 (struct
   331 (
   332   type T = T;
   332   type T = T;
   333   val empty = Graph.empty;
   333   val empty = Graph.empty;
   334   fun merge _ _ = Graph.empty;
   334   fun merge _ _ = Graph.empty;
   335   fun purge _ NONE _ = Graph.empty
   335   fun purge _ NONE _ = Graph.empty
   336     | purge _ (SOME cs) funcgr =
   336     | purge _ (SOME cs) funcgr =
   337         Graph.del_nodes ((Graph.all_preds funcgr 
   337         Graph.del_nodes ((Graph.all_preds funcgr 
   338           o filter (can (Graph.get_node funcgr))) cs) funcgr;
   338           o filter (can (Graph.get_node funcgr))) cs) funcgr;
   339 end);
   339 );
   340 
   340 
   341 fun make thy =
   341 fun make thy =
   342   Funcgr.change thy o ensure_consts thy (Code.coregular_algebra thy);
   342   Funcgr.change thy o ensure_consts thy (Code.coregular_algebra thy);
   343 
   343 
   344 fun make_consts thy =
   344 fun make_consts thy =