MACRO: shadowing-boa ( class -- tuple ) [ all-slots [ name>> ] map [ reverse! sets:members [ length ] keep [ narray reverse! ] dip [ swap 2array ] 2map ] keep ] keep [ initial-values reverse! [ 2array ] 2map [ '[ [ first ] [ last ] bi _ swap '[ drop _ ] change-at ] each ] keep reverse! [ last ] each ] keep boa ;