 USING: namespaces sequences io.files kernel assocs words vocabs
 definitions parser continuations io hashtables sorting
 source-files arrays combinators strings system math.parser
-compiler.errors splitting init ;
+compiler.errors splitting init accessors ;
 IN: vocabs.loader
 
 SYMBOL: vocab-roots


M: vocab (load-vocab)
    [
        dup vocab-source-loaded? [ dup load-source ] unless
        dup vocab-docs-loaded? [ dup load-docs ] unless
        drop
    ] [ [ swap add-to-blacklist ] keep rethrow ] recover ;



SYMBOL: load-help?

: load-source ( vocab -- vocab )
    f >>source-loaded?
    [ vocab-source-path [ parse-file ] [ [ ] ] if* ] keep
    t >>source-loaded?
    [ [ % ] [ call ] if-bootstrapping ] dip ;


: load-docs ( vocab -- vocab )
    load-help? get [
        f >>docs-loaded?
        [ vocab-docs-path [ ?run-file ] when* ] keep
        t >>docs-loaded?
    ] when ;

: reload ( name -- )
    [
