June 29, 2011
MonadCatchIO-mtl, a monad-transformer version of the Control.Exception.catch function is now available for Fedora. Install it using:
$ sudo yum install ghc-MonadCatchIO-mtl ghc-MonadCatchIO-mtl-devel
A simple example to throw or catch an exception that is an instance of the Exception class:
{-# LANGUAGE DeriveDataTypeable #-}
import Control.Monad.CatchIO
import Data.Typeable
import Prelude hiding (catch)
data MyException = ThisException | ThatException
deriving (Show, Typeable)
instance Exception MyException
main = do
throw ThisException `catch` \e -> putStrLn ("Caught " ++ show (e :: MyException))
Thanks to Daniel GorĂn for the upstream changes.