 
 INSTANCE: hash-set set
 
-M: hash-set intersect
-    small/large sequence/tester filter >hash-set ;
+! Overrides for performance
+
+M: hash-set intersect (intersect) >hash-set ;
 
 M: hash-set union
     over hash-set? [

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

: each-member ( array quot: ( elt -- ) -- )
    [
        [ length ] keep
        [ array-nth dup tombstone? [ drop ] ] curry
    ] dip [ if ] curry compose each-integer ; inline

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

        (union) >hash-set
    ] if ;

M: hash-set diff (diff) >hash-set ;

! Default methods

M: f fast-set drop 0 <hash-set> ;

