úÎ?S     non-portable experimental%Andy Sonnenburg <andy22286@gmail.com> Safe-InferredJThe strategy of combining computations that can handle thrown exceptions, <as well as throwing exceptions in the original computation. PIs parameterized over the type of error information and the original monad type Oconstructor, as well as the handler monad type constructor. The handler monad Otype constructor commonly differs from the original monad type constructor due 2to a change in the type of the error information. KA handler function to handle thrown values and return to normal execution.  A common idiom is:  2 do { action1; action2; action3 } `catch` handler  where the action functions can call .  Note that handler2 and the do-block must have the same return type. BThe strategy of combining computations that can throw exceptions. GIs parameterized over the type of error information and the monad type "constructor. It is common to use   String. In some cases you will have to define an instance of  , though rarely a definition of  HIs used within a monadic computation to begin exception processing. If  ( e n,   t) => t n ~ m, then  =     is the default definition. .Map the thrown value using the given function  !"#$%&'() !"#$%&'() non-portable experimental%Andy Sonnenburg <andy22286@gmail.com> Safe-Inferred# *+,-./0123456789:;<=>?@ABCDE<FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq rs    *+,-./0123456789:;<=>?@ABCDEt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVUWXYSZU[\]U^U_U`UaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzU{U|}~}€catch-fd-0.2.0.2Control.Monad.Catch.ClassControl.Monad.Catch MonadCatchcatch MonadThrowthrowmapEWrappedMonadCatchWrapMonadCatchunwrapMonadCatchWrappedMonadErrorWrapMonadErrorunwrapMonadError MonadErrorbase Data.EitherEithertransformers-0.3.0.0Control.Monad.Trans.Class MonadTransliftGHC.Base.$fMonadCatcheWriterTWriterT$fMonadCatcheWriterTWriterT0$fMonadCatcheStateTStateT$fMonadCatcheStateTStateT0$fMonadCatcheRWSTRWST$fMonadCatcheRWSTRWST0$fMonadCatcheReaderTReaderT$fMonadCatcheMaybeTMaybeT$fMonadCatcheListTListT$fMonadCatcheIdentityTIdentityT$fMonadThroweWriterT$fMonadThroweWriterT0$fMonadThroweStateT$fMonadThroweStateT0$fMonadThroweRWST$fMonadThroweRWST0$fMonadThroweReaderT$fMonadThroweMaybeT$fMonadThroweListT$fMonadThroweIdentityT$fMonadCatcheErrorTErrorT$fMonadThroweErrorT$fMonadCatcheEitherEither$fMonadThroweEither$fMonadCatchIOExceptionIOIO$fMonadThrowIOExceptionIO$fMonadWriterwWrappedMonadCatch$fMonadStatesWrappedMonadCatch$fMonadReaderrWrappedMonadCatch$fMonadRWSrwsWrappedMonadCatch$fMonadErroreWrappedMonadCatch$fMonadContWrappedMonadCatch/$fMonadCatcheWrappedMonadCatchWrappedMonadCatch$fMonadThroweWrappedMonadCatch$fMonadIOWrappedMonadCatch$fMonadTransWrappedMonadCatch$fMonadWrappedMonadCatch$fAlternativeWrappedMonadCatch$fApplicativeWrappedMonadCatch$fFunctorWrappedMonadCatch$fMonadWriterwWrappedMonadError$fMonadStatesWrappedMonadError$fMonadReaderrWrappedMonadError$fMonadRWSrwsWrappedMonadError$fMonadErroreWrappedMonadError$fMonadContWrappedMonadError/$fMonadCatcheWrappedMonadErrorWrappedMonadError$fMonadThroweWrappedMonadError$fMonadIOWrappedMonadError$fMonadTransWrappedMonadError$fMonadWrappedMonadError$fAlternativeWrappedMonadError$fApplicativeWrappedMonadError$fFunctorWrappedMonadErrorfail>>=>>fmapreturnControl.Monad.Fixmfix Control.MonadguardliftMMonadFunctorMonadFix MonadPlus Data.FunctionfixmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinvoidforever<=<>=>msumforM_forMfilterMmapM_mapM sequence_sequence=<<mplusmzeroControl.Monad.IO.ClassMonadIOliftIO