src/Pure/General/graph.ML
changeset 77723 b761c91c2447
parent 70773 60abd1e94168
child 77724 b4032c468d74
--- a/src/Pure/General/graph.ML	Mon Mar 27 19:41:18 2023 +0200
+++ b/src/Pure/General/graph.ML	Mon Mar 27 21:48:47 2023 +0200
@@ -76,22 +76,23 @@
 val eq_key = is_equal o Key.ord;
 
 structure Table = Table(Key);
+structure Set = Set(Key);
 
 structure Keys =
 struct
 
-abstype T = Keys of unit Table.table
+abstype T = Keys of Set.T
 with
 
-val empty = Keys Table.empty;
-fun is_empty (Keys tab) = Table.is_empty tab;
+val empty = Keys Set.empty;
+fun is_empty (Keys set) = Set.is_empty set;
 
-fun member (Keys tab) = Table.defined tab;
-fun insert x (Keys tab) = Keys (Table.insert (K true) (x, ()) tab);
-fun remove x (Keys tab) = Keys (Table.delete_safe x tab);
+fun member (Keys set) = Set.member set;
+fun insert x (Keys set) = Keys (Set.insert x set);
+fun remove x (Keys set) = Keys (Set.remove x set);
 
-fun fold f (Keys tab) = Table.fold (f o #1) tab;
-fun fold_rev f (Keys tab) = Table.fold_rev (f o #1) tab;
+fun fold f (Keys set) = Set.fold f set;
+fun fold_rev f (Keys set) = Set.fold_rev f set;
 
 fun dest keys = fold_rev cons keys [];