dierre
c1.flatMap(x => c2.flatMap(y => c3.map(z => {...})))
for(x <- c1; y <- c2; z <- c3) yield {...}
misko