PRIVATE>
-M: set union
- [ (union) ] keep set-like ;
+M: set union [ (union) ] keep set-like ;
<PRIVATE
: small/large ( set1 set2 -- set1' set2' )
2dup [ cardinality ] bi@ > [ swap ] when ;
+: (intersect) ( set1 set2 -- seq )
+ small/large sequence/tester filter ; inline
+
+: (diff) ( set1 set2 -- seq )
+ sequence/tester [ not ] compose filter ; inline
+
PRIVATE>
-M: set intersect
- [ small/large sequence/tester filter ] keep set-like ;
+M: set intersect [ (intersect) ] keep set-like ;
-M: set diff
- [ sequence/tester [ not ] compose filter ] keep set-like ;
+M: set diff [ (diff) ] keep set-like ;
M: set intersects?
small/large sequence/tester any? ;