 USING: accessors assocs combinators definitions kernel
 make namespaces quotations sequences sets words words.symbol ;
 FROM: namespaces => set ;
-FROM: graphs => add-vertex remove-vertex ;
 QUALIFIED: sets
 IN: classes
 

        tri
    ] { } make ;

: class-usage ( class -- seq ) update-map get at keys ;

<PRIVATE


<PRIVATE

: update-map+ ( class -- )
    dup class-uses update-map get
    [ adjoin-at ] curry with each ;

: update-map- ( class -- )
    dup class-uses update-map get
    [ at delete ] curry with each ;

: implementors-map+ ( class -- )
    [ HS{ } clone ] dip implementors-map get set-at ;
