role AOC { # Exists mostly to allow day3 to run a subparse instead of a full parse method aocparse(::?CLASS:U: $content) { self.parse($content).made } method part1(::?CLASS:U: $v) { ... } method part2(::?CLASS:U: $v) { ... } method main(::?CLASS:U:) { my \parsed = self.aocparse(slurp(@*ARGS[0])); say self.part1(parsed); say self.part2(parsed); } }