 : check-vocab-name ( str -- str )
     dup dup [ CHAR: . = ] trim [ length ] bi@ =
     [ vocab-name-contains-dot ] unless
-
     ".." over subseq? [ vocab-name-contains-dot ] when
-
     dup [ path-separator? ] contains?
     [ vocab-name-contains-separator ] when ;
 

    check-scaffold [ vocab>scaffold-path ] keep ;

: scaffold-help ( vocab-root str -- )
    prepare-scaffold
    [ "-docs.factor" scaffold-path ] dip
    swap [ set-scaffold-help-file ] [ 2drop ] if ;

: scaffold-vocab ( vocab-root str -- )
    prepare-scaffold

        { "ch" "a character" }
    } at* ;

: add-using ( object -- )
    vocabulary>> using get conjoin ;

: ($values.) ( array -- )
    [
        " { " write
        dup array? [ first ] when
        dup lookup-type [
            [ unparse write bl ]
            [ dup string? [ unparse write ] [ [ pprint ] [ add-using ] bi ] if ] bi*
        ] [
            drop unparse write
        ] if
