+my $lastbox = "#nil";
+sub set_box ($) {
+ my ($box) = @_;
+ $box //= "#nil";
+ if ($box ne $lastbox) { print "!box $box\n"; $lastbox = $box; }
+}
+
+for my $name (sort { my $pa = $set_path{$a}[0]; my $ba = $box{$pa} // "~~~";
+ my $pb = $set_path{$b}[0]; my $bb = $box{$pb} // "~~~";
+ $ba cmp $bb || $pa cmp $pb }