хоть иди и пиши в ДМК, мол "я тут спиратил вашу книжку и нашёл фактическую ошибку в придачу к десятку опечаток". Хотя по фактическим ошибкам по идее надо слать сразу в Нью-Йорк, хм.
let filter_ p v = fmap (const v) (guard (p v)) Prelude Control.Monad> filter_ (>2) 3 :: Maybe Int Just 3 Prelude Control.Monad> filter_ (>2) 2 :: Maybe Int Nothing