         { [ drop drop drop ] 3drop }
         { [ 0 = ] zero? }
         { [ pop drop ] pop* }
+        { [ [ ] if ] when }
     } [ first2 swap add-word-def ] each ;
 
 : accessor-words ( -- seq )

: subseq/member? ( subseq/member seq -- ? )
    { [ 2dup start ] [ 2dup member? ] } || 2nip ;

M: quotation lint ( quot -- seq )
    def-hash-keys get [
        swap subseq/member?
    ] curry* subset ;

M: word lint ( word -- seq )
    word-def dup quotation? [ lint ] [ drop f ] if ;

: word-path. ( word -- )
    [ word-vocabulary ":" ] keep unparse 3append write nl ;

    2dup at -rot >r >r ?push r> r> set-at ;

: add-word-def ( word quot -- )
    dup callable? [
        def-hash get-global set-hash-vector
    ] [
        2drop
