| ~(x,s) = foo 1 [] , ~(y,s) = bar x s , ~(z,s) = baz x y s = ... in my previous message should be: | ~(x,s) <- foo 1 [] , ~(y,s) <- bar x s , ~(z,s) <- baz x y s = ...