[ ensure-vocab-root ] [ check-vocab-name ] bi* ;\r
\r
: (child-vocabs) ( root prefix -- vocabs )\r
- ensure-vocab-root/prefix\r
+ check-vocab-name\r
[ vocab-dir append-path dup exists? [ vocab-subdirs ] [ drop { } ] if ]\r
[ nip [ "." append '[ _ prepend ] map! ] unless-empty ]\r
[ drop '[ _ over vocab-dir? [ >vocab-link ] [ <vocab-prefix> ] if ] map! ]\r
[ ((child-vocabs-recursive)) ] with each ;\r
\r
: (child-vocabs-recursive) ( root prefix -- seq )\r
+ [ ensure-vocab-root ] dip\r
[ ((child-vocabs-recursive)) ] { } make ;\r
\r
: no-rooted ( seq -- seq' ) [ find-vocab-root not ] filter ;\r