Can I capture the returned value of a routine used in RUN-MAIN?

You could use the function composition operator infix:<∘> or infix:<o>

sub foo ($name, Int $n=1) { 
    "Hello $name\n" xx $n 
}; 
RUN-MAIN &say o &foo, Nil; #or &foo Ro &say

but unfortunately, it is changing the signature

sub foo ($name, Int $n=1) { 
    "Hello $name\n" xx $n 
};

say &foo.signature;
say (&foo Ro &say).signature;

so default USAGE message does not work.


The following seems to accomplish what I intended (where foo is the target sub).

RUN-MAIN( &foo, Nil );

sub MAIN ( |c --> Nil ) {
  foo(|c).say;
}

EDIT: Unfortunately this solution is not ideal, as it runs &foo twice.