Rakoons,
I keep running into a space with Raku where it would be nice to have some magic to reduce boilerplate. I often make roles & classes with interface options that flow from a consuming script’s MAIN arguments, then the first bit of code at the top the MAIN block, then into instantiation. If a person makes nice utility libraries with lots of options for the user & employs them a lot, the time consumed typing out the boilerplate adds up & bloats the code. Is there any way to shorten this pattern? I was thinking about a ‘switchable’ trait for attributes (with the naivety of a schoolboy). my class Output { has $.csv is switchable; has $.html is switchable; . . . has $.xml is switchable; } my class Timer { has $.count is switchable; has $.expire is switchable; has $.interval is switchable; } sub MAIN ( Output.switchables, #= switchables from Class 'Output' Timer.switchables, #= switchables from Class 'Timer' ) { my Timer $t .= new: :$expire, :$interval, :$count; # variables magically appear in scope my Output $o .= new: :$csv, :$html, … , :$xml; # variables magically appear in scope } I estimate 10-50 lines of boilerplate could be removed from most of my Raku scripts with something like that. Unfortunately, I don’t possess any dark magic for such things or I’d put forward an attempt. Thanks, Mark