concept seq in category haskell
appears as: seq

This is an excerpt from Manning's book Haskell in Depth MEAP V12.
Haskell provides somewhat magic
seq
function, which is defined in terms of strictness. Its type isa → b → b
so it looks like it ignores the first argument. In fact, it’s not, because its implementation is guaranteed to adhere to the following two rules:
ghci> let _ = undefined in "OK" "OK" ghci> :set -XBangPatterns ghci> let !_ = "BAD" in "OK" "OK" ghci> let !_ = undefined in "OK" "*** Exception: Prelude.undefined