I was looking for the definition of seq and came across this weirdness. Why do all these functions have the same/similar definitions?
seq
seq :: a ->
These definitions are a ruse: they're provided primitively by the GHC runtime. It turns out that the infinite loop let x = x in x can be given any type, so it's as good a ruse definition as any.
let x = x in x