@prog set-Dave-house-K.muf 1 999 d 1 i $def Dave #10178 $def RLook #860 : say me @ swap notify ; : maybe-set-K (obj -- obj) dup owner Dave dbcmp not if exit then dup "K" flag? if exit then dup "K" set dup me @ unparse_object say ; : filtered-list (thing -- xN ... x1 N) 0 swap begin dup while dup owner Dave dbcmp if swap 1 + over then next loop pop ; : scan-exits (xN ... x1 N -- ) begin dup 0 > while 1 - swap maybe-set-K getlinks begin dup 0 > while 1 - swap maybe-set-K pop loop pop loop pop ; : scan-things (xN ... x1 N -- ) begin dup 0 > while 1 - swap dup thing? if maybe-set-K dup exits filtered-list scan-exits then pop loop pop ; : main me @ location maybe-set-K dup contents filtered-list scan-things dup exits filtered-list scan-exits pop RLook call ; . c q