     [ dup coverage 2array ] map-words ;
 
 M: word coverage ( word -- seq )
-    "coverage" word-prop >alist
+    "coverage" word-prop
     [ drop executed?>> ] assoc-reject values ;
 
 GENERIC: coverage. ( object -- )

USING: accessors arrays assocs classes combinators.short-circuit
continuations fry io kernel math namespaces prettyprint
quotations sequences sequences.deep splitting strings
tools.annotations tools.test.private vocabs vocabs.hierarchy
words words.symbol ;
IN: tools.coverage

TUPLE: coverage-state < identity-tuple executed? ;

M: string coverage.
    [ coverage. ] each-word ;

: pair-coverage. ( word seq -- )
    [ drop ] [
        [ name>> ":" append print ]
        [ [ "    " write . ] each ] bi*
    ] if-empty ;

M: word coverage.
    dup coverage pair-coverage. ;
