[RWHaskell p 133]