 
 TUPLE: manifest
 current-vocab
-{ search-vocab-names hashtable }
+{ search-vocab-names hash-set }
 { search-vocabs vector }
 { qualified-vocabs vector }
 { auto-used vector } ;
 
 : <manifest> ( -- manifest )
     manifest new
-        H{ } clone >>search-vocab-names
+        HS{ } clone >>search-vocab-names
         V{ } clone >>search-vocabs
         V{ } clone >>qualified-vocabs
         V{ } clone >>auto-used ;

    dup using-vocab? [
        manifest get
        [ [ load-vocab ] dip search-vocabs>> remove-eq! drop ]
        [ [ vocab-name ] dip search-vocab-names>> delete-at ]
        2bi
    ] [ drop ] if ;



: update-manifest ( manifest -- )
    [ dup [ name>> lookup-vocab ] when ] change-current-vocab
    [ members [ lookup-vocab ] filter dup fast-set ] change-search-vocab-names
    swap [ lookup-vocab ] V{ } map-as >>search-vocabs
    qualified-vocabs>> [ update ] filter! drop ;

M: manifest definitions-changed ( assoc manifest -- )
