sub zipwith ( Code $with, *@lists ) { gather { while any( @lists ) { take $with.( @lists>>.shift ); } } }