# Pastebin G24l8JVW has Set $!dirty; method BUILDALL(|) { for ::?CLASS!attr-columns -> $attr { my $attr-name = $attr.name.substr(2); my $dirt = sub { $!dirty ∪= $attr-name; }; with ::?CLASS.^find_method($attr-name) { .wrap: method () { my $value := callsame; Proxy.new: FETCH => method () {$value}, STORE => method ($val) { $dirt(); $value = $val }, ; } } } nextsame }