 
 : prune ( seq -- newseq )
     [ length <hashtable> ]
-    [ length <vector>    ]
-    [                    ] tri
+    [ length <vector> ]
+    [ ] tri
     [ >r 2dup r> (prune) ] each nip ;
 
 : all-unique? ( seq -- ? )
-    [ length       ]
+    [ length ]
     [ prune length ] bi = ;
 
 INSTANCE: hashtable assoc

: (key@) ( key keys i -- array n ? )
    3dup swap array-nth
    dup ((empty)) eq?
      [ 3drop nip f f ]
      [
        =
          [ rot drop t ]
          [ probe (key@) ]
        if
      ]
    if ; inline

: key@ ( key hash -- array n ? )
    hash-array 2dup hash@ (key@) ; inline

    [ hash-array array-capacity ] bi > ;

: hash-stale? ( hash -- ? )
    [ hash-deleted 10 fixnum*fast ] [ hash-count ] bi fixnum> ;

: grow-hash ( hash -- )
    [ dup hash-array swap assoc-size 1+ ] keep
