optional has to combine the child's permutations