         (union) >hash-set
     ] if ;
 
-M: hash-set diff
-    sequence/tester [ not ] compose filter >hash-set ;
+M: hash-set diff (diff) >hash-set ;
+
+! Default methods
 
 M: f fast-set drop 0 <hash-set> ;
 


INSTANCE: hash-set set

M: hash-set intersect
    small/large sequence/tester filter >hash-set ;

M: hash-set union
    over hash-set? [

    [ array>> length>> 1 fixnum-shift-fast ] bi fixnum> ; inline

: each-member ( array quot: ( elt -- ) -- )
    [ if ] curry [ dup tombstone? [ drop ] ] prepose each ; inline

: grow-hash ( hash -- )
    { hash-set } declare [
