recombine using generators