seq package:basic-prelude

The value of seq a b is bottom if a is bottom, and otherwise equal to b. seq is usually introduced to improve performance by avoiding unneeded laziness. A note on evaluation order: the expression seq a b does not guarantee that a will be evaluated before b. The only guarantee given by seq is that the both a and b will be evaluated before seq returns a value. In particular, this means that b may be evaluated before a. If you need to guarantee a specific order of evaluation, you must use the function pseq from the "parallel" package.
General-purpose finite sequences.
Evaluate each monadic action in the structure from left to right, and collect the results. For a version that ignores the results see sequence_.
Evaluate each action in the structure from left to right, and and collect the results. For a version that ignores the results see sequenceA_.
Evaluate each action in the structure from left to right, and ignore the results. For a version that doesn't ignore the results see sequenceA.