Ex 2.10 [Haskell00 p164]