On Wed, 2010-04-14 at 09:29 +0100, Thomas Davie wrote: > It isn't? > > fPrelude> fmap id (undefined :: IO ()) > *** Exception: Prelude.undefined ghci is helpfully running the IO action for you. Try this: seq (fmap id (undefined :: IO ())) "not bottom" -- Ashley Yakeley