 USING: threads kernel namespaces continuations combinators
 sequences math namespaces.private continuations.private
 concurrency.messaging quotations kernel.private words
-sequences.private assocs models ;
+sequences.private assocs models arrays accessors ;
 IN: tools.walker
 
 SYMBOL: show-walker-hook ! ( status continuation thread -- )

            swap % unclip {
                { [ dup \ break eq? ] [ , ] }
                { [ dup quotation? ] [ add-breakpoint , \ break , ] }
                { [ dup word? ] [ literalize , \ (step-into-execute) , ] }
                { [ t ] [ , \ break , ] }
            } cond %

: walk ( quot -- quot' )
    \ break prefix [ break rethrow ] recover ;

GENERIC: add-breakpoint ( quot -- quot' )

M: callable add-breakpoint
    dup [ break ] head? [ \ break prefix ] unless ;

M: array add-breakpoint
    [ add-breakpoint ] map ;

M: object add-breakpoint ;

: (step-into-quot) ( quot -- ) add-breakpoint call ;

