         [ members { array } declare ]
         [ cardinality 1 + ]
         [ reset-hash ] tri
-    ] keep swap (rehash) ;
+    ] keep (rehash) ;
 
 : ?grow-hash ( hash -- )
     dup hash-large? [ grow-hash ] [ drop ] if ; inline

    [ count>> ] [ deleted>> ] bi - ; inline

M: hash-set adjoin ( key hash -- )
    dup ?grow-hash dupd new-key@ set-nth-item ;

<PRIVATE


: set-nth-item ( key seq n -- )
    2 fixnum+fast set-slot ; inline

: (adjoin) ( key hash -- )
    dupd new-key@ set-nth-item ; inline

: (rehash) ( seq hash -- )
    [ (adjoin) ] curry each ; inline

: hash-large? ( hash -- ? )
    [ count>> 3 fixnum*fast 1 fixnum+fast ]
