Make pseq robust by using seq#
Fixes #23699, fixes #23233, and adds a test for the latter.
The implementation of par was near-by to and very similar to that of pseq, and has been adjusted in an analogous way, which also allows the deprecation of par# to resume, resolving #24825.
The documentation around Control.Exception.evaluate and
Note [seq# magic] has been expanded and improved, fixing #22935.
The documentation around GHC.Magic.lazy and Note [lazyId magic]
which was relevant to the old implementations of pseq
and par
has also been improved, fixing #25210.
Edited by Matthew Craven