seqIn 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 seqs were introduced when debugging.