úÎ<ñ7È>      !"#$%&'()*+,-./0123456789:;<=CheckedException adds a phantom type parameter l to  SomeException Throws% is a type level binary relationship ( used to model a list of exceptions. .There is only one case in which the user must  add further instances to Throws, and that is + to encode the hierarchy of exceptions.   Subtyping / As there is no way to automatically infer < the subcases of an exception, they have to be encoded = manually mirroring the hierarchy defined in the defined   instances.  For example, ) the following instance encodes that MyFileNotFoundException is  a subexception of  MyIOException : B instance Throws MyFileNotFoundException (Caught MyIOException l) : is not a transitive relation and every ancestor relation " must be explicitly encoded. N -- TopException I -- | I instance Throws MidException (Caught TopException l) -- | N -- MidException I instance Throws ChildException (Caught MidException l) -- | I instance Throws ChildException (Caught TopException l) -- | O -- ChildException  is automatically 1 an ancestor of every other exception type. -A type level witness of a exception handler. 4>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd"MonadZeroException is thrown by MonadPlus c  FailException is thrown by Monad >  !"#0A monad of explicitly typed, checked exceptions $/Uncaught Exceptions model unchecked exceptions +In order to declare an unchecked exception E, ! all that is needed is to make e an instance of $  instance UncaughtException E GNote that declaring an exception E as unchecked does not automatically V turn its children as unchecked too. This is a shortcoming of the current encoding. EIf that is what you want, then declare E as unchecked and unexplicit  using an instance of :  instance Throws E l %&'(=A Monad Transformer for explicitly typed checked exceptions. )*+,1Run a computation explicitly handling exceptions -.Run a safe computation /0Run a safe computation checking even unchecked ($ ) exceptions 0The throw primitive 1,Rethrow an exception keeping the call trace 2The catch primitive 3Like 2$ but makes the call trace available 4CSequence two computations discarding the result of the second one. N If the first computation rises an exception, the second computation is run ' and then the exception is rethrown. 5JLike finally, but performs the second computation only when the first one  rises an exception 6acquire resource release resource  computation 7.Capture an exception e, wrap it, and rethrow. * Keeps the original monadic call trace. 891Run a computation explicitly handling exceptions :Run a safe computation ;+Run a computation checking even unchecked (UncaughtExceptions ) exceptions <)This function may be used as a value for b in D =" !"#$%&'()*+,-./0123456789:;<="+()*',-&%./012345678$#9:; !"<=" !"!"#$%&'()*)*+,-./0123456789:;<=1 #$'()*+,./0123456789:;<1#9:;()*+,./'$012345678<  e       !"#$%%&&''()*+,-../0123456#$789:;<=>?@ABACADAEAFAGHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH[H\H]H^H_H`HaHbHcHdHeHfHgHhAijcontrol-monad-exception-0.8.0Control.Monad.ExceptionControl.Monad.Exception.CatchControl.Monad.Exception.ThrowsControl.Monad.Exception.Basebase Data.TypeableTypeable GHC.Exception SomeException fromException toException ExceptiontypeOffailure-0.0.0.1Control.FailurefailureFailure MonadFailure wrapFailure WrapFailuretryErrorTryNothingException monadloc-0.5Control.Monad.Loc withLocTHwithLocMonadLocCheckedExceptioncheckedExceptionThrowsCaught MonadCatchcatchcatchWithSrcLocMonadZeroException FailExceptionIdentity runIdentityEMUncaughtException ParanoidMode NoExceptions AnyExceptionEMTunEMT CallTracetryEMT runEMT_genrunEMTrunEMTParanoidthrowrethrowfinally onExceptionbracket wrapExceptionshowExceptionWithTracetryEMrunEM runEMParanoid mplusDefaultmapLeftGHC.Basefail>>=>>returnMonadFunctor Control.Monad MonadPlusapliftM5liftM4liftM3liftM2liftMunlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMguardmapM_mapM sequence_sequence=<<mplusmzerofmap