 : load-failures. ( failures -- )
     [ load-error. nl ] each ;
 
+SYMBOL: blacklist
+
 : require-all ( vocabs -- failures )
     [
+        V{ } clone blacklist set
         [
             [
                 [ require ]
-                [ error-continuation get 3array , ]
-                recover
+                [
+                    over vocab-name blacklist get push
+                    error-continuation get 3array ,
+                ] recover
             ] each
         ] { } make
     ] with-compiler-errors ;

M: vocab-link (load-vocab)
    vocab-name (load-vocab) ;

[ [ dup vocab [ ] [ ] ?if (load-vocab) ] with-compiler-errors ]
load-vocab-hook set-global

: vocab-where ( vocab -- loc )
    vocab-source-path dup [ 1 2array ] when ;

: refresh-all ( -- ) "" refresh ;

GENERIC: (load-vocab) ( name -- vocab )
!
M: vocab (load-vocab)
    dup vocab-root [
        dup vocab-source-loaded? [ dup load-source ] unless
