Hm you're right, predeclaration doesn't seem to be the correct solution to your problem after all.
But this bug tracker is not the right place for Perl 6 user support, it should be reserved for collecting info on actual Rakudo bugs.
You should ask on the #perl6 IRC channel instead, I'm sure someone there can help you solve your programming problem.
As for the issue of Rakudo failing to detect the cyclic dependency and printing an appropriate error message for it, I've submitted a new ticket for that to keep it clean: [perl #128285]
I'm renaming this ticket here back to its original title, and I'm closing it.