# Pastebin 2Obs54h6 has Set $.dirty-columns .= new; method !set-dirty(Str $attr) { $!dirty-columns ∪= $attr } method COMPOSE(::?CLASS:U:) { for ::?CLASS!attr-columns -> $attr { my $attr-name = $attr.name.substr(2); with ::?CLASS.^find_method($attr-name) { .wrap: method (::?CLASS:D \SELF:) is rw { say "a wrap layer"; my $value := callsame; Proxy.new: FETCH => method () {$value}, STORE => method ($val) { SELF!set-dirty: $attr-name; $value = $val }, ; } } } nextsame }