Can you suggest simpler and clearer way to write this function?
let cartesian_product sequences =
let step acc sequence = seq {
for x in acc do
for y in sequence do
yield Seq.append x [y] }
Seq.fold step (Seq.singleton Seq.empty) sequences
Less elegant, but (seems to be) faster solution:
;