: intern ( string -- symbol ) dup words-named dup empty? [ [ drop current-vocab create dup define-symbol ] with-compilation-unit ] [ 0 swap nth nip ] if ;