> (Note that I'm keeping the ':' notation, because then it's clear that we're > talking about a generation rule, not an upper bound). Now I write it like > this, wouldn't it be nice if we could also say: > (1..:f(__)) == apply(f(__), (1..); # But I digress! > Correction (sorry). This should be: (1..:f()) == (1) . map {apply(f(__), (1..$_))} (1..); Anyway, just ignore this nomenclature for a moment. Christian Soeller has got an RFC coming up on slicing semantics from which I've developed some better ideas on creating generating functions. I'll post these as replies to that RFC when it appears.