private static function permutations(array $roses) { foreach ($roses as $index => $rose) { foreach ($rose->children as $child) { (yield FP::assoc($roses, $index, $child)); } } }