seq
In Section 10.3 of “A History of Haskell: Being Lazy with
Class”
it is explained that seq
originally required a typeclass. This
requirement was removed when it required too many changes to type
signatures when speculative seq
s were introduced when debugging.