         [ [ words ] dip each ] 2bi
     ] if ; inline
 
+PRIVATE>
+
 M: string coverage-on
-    [ coverage-on ] change-coverage ;
+    [ coverage-on ] change-vocabulary-coverage ;
 
 M: string coverage-off ( vocabulary -- )
-    [ coverage-off ] change-coverage ;
+    [ coverage-off ] change-vocabulary-coverage ;
 
 M: word coverage-on ( word -- )
     H{ } clone [ "coverage" set-word-prop ] 2keep

GENERIC: toggle-coverage ( object -- )

M: string toggle-coverage
    words [ toggle-coverage ] each ;

M: word toggle-coverage
    dup "coverage" word-prop [


C: <coverage> coverage

GENERIC: coverage-on ( object -- )

GENERIC: coverage-off ( object -- )

<PRIVATE

: private-vocab-name ( string -- string' )
    ".private" ?tail drop ".private" append ;

: change-vocabulary-coverage ( string quot -- )
    over ".private" tail? [
        [ words ] dip each
    ] [
