0)3      !"#$%&'()*+,-./012 Safe-Infered $ converted into a monad transformer If " Either e r" is the error monad, then " EitherR r e" is the ( corresponding success monad, where:  3 is .  (4) is . * Successful results abort the computation ,Complete error handling, returning a result # in the error monad corresponds to 3 in the success monad $ in the error monad corresponds to (4) in the success monad  with the arguments flipped Map a function over the 5 value of an 6 ,Complete error handling, returning a result  # in the error monad corresponds to 3 in the success monad  $ in the error monad corresponds to (4) in the success monad   with the arguments flipped Map a function over the 5 value of an 7  89:;<=>    89:;<=> Safe-Infered Suppress the 5 value of an 6  Suppress the 5 value of an 7 Tag the ? value of a @ Tag the ? value of a A Lift a @ to the A monad Lift an 6 to the 7 monad  Safe-InferedA B that fails in the 6 monad An C that fails in the 6 monad A D that fails in the 6 monad A E that fails in the 6 monad A F that fails in the 6 monad A G that fails in the 6 monad A H that fails in the 6 monad A I that fails in the 6 monad A foldl1' that fails in the 6 monad A (J) that fails in the 6 monad A K that fails in the 6 monad !An assertion that fails in the 6 monad "A B that fails in the 7 monad #An C that fails in the 7 monad $A D that fails in the 7 monad %A E that fails in the 7 monad &A F that fails in the 7 monad 'A G that fails in the 7 monad (A H that fails in the 7 monad )A I that fails in the 7 monad *A foldl1' that fails in the 7 monad +A (J) that fails in the 7 monad ,A K that fails in the 7 monad -An assertion that fails in the 7 monad  !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,- Safe-Infered.An L action that can fail with a M error message / Runs the . monad Prints the first error to N and exits with O 0A @ that fails in the . monad 1An 6 that fails in the . monad 22 is like lift', except it converts exceptions to the . monad ./012./012./012./012 Safe-Infered65PQRSTUVWXYZ[\]?^@_`abcde7fghijklmnopqrstuvwxyz{|}~A  !"#$%&'()*+,-./012      !"#$%&'()*+,-./012345678978:7;<7;=>?@ABCDEFG7HI7HJKLM7NO7NP7NQ7NR7ST7SU7NV7SW7NX7YZ[\]78^7_`7ab7;c7;d7;e7;f7;g7Hh7Hi7Hj7Hk7Hl7Hm7Hn7Ho7Hp7Hq>?r>?s>?t>?u>?v>?w>?@xyzxy{xy|xy}xy~xyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyKLKLKLKLKLKLKLM errors-1.2.0 Data.EitherRControl.Error.UtilControl.Error.SafeControl.Error.Script Control.ErrorEitherRT runEitherRTEitherR runEitherRsucceedthrowEcatchEhandleEfmapLsucceedTthrowTcatchThandleTfmapLThushhushTnotenoteT liftMaybe liftEithertailErrinitErrheadErrlastErr minimumErr maximumErr foldr1Err foldl1Err foldl1Err'atErrreadErr assertErrtryTailtryInittryHeadtryLast tryMinimum tryMaximum tryFoldr1 tryFoldl1 tryFoldl1'tryAttryRead tryAssertScript runScripttryMaybe tryEithertryIObaseGHC.Basereturn>>= Data.EitherLeftEither either-3.0.2Control.Monad.Trans.EitherEitherT$fMonadTransEitherRT$fMonadEitherRT$fApplicativeEitherRT$fFunctorEitherRT$fMonadEitherR$fApplicativeEitherR$fFunctorEitherR Data.MaybeNothingMaybetransformers-0.3.0.0Control.Monad.Trans.MaybeMaybeTGHC.Listtailinitheadlast Data.Listminimummaximumfoldr1foldl1!! Text.Readreadghc-prim GHC.TypesIOStringGHC.IO.Handle.FDstderr System.Exit exitFailureRightpartitionEithersrightsleftseithermapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeJust hoistEither mapEitherTrightlefteitherT runEitherT safe-0.3.3Safeabort findJustNote findJustDeffindJustlookupJustNote lookupJustDef lookupJustreadNotereadMayreadDefatNoteatMayatDefat assertNote fromJustNote fromJustDef foldl1Note' foldl1May' foldl1Def' foldl1Note foldl1May foldl1Def foldr1Note foldr1May foldr1Def maximumNote maximumMay maximumDef minimumNote minimumMay minimumDeflastNotelastMaylastDefheadNoteheadMayheadDefinitSafeinitNoteinitMayinitDeftailSafetailNotetailMaytailDefliftPass liftListen liftCatch liftCallCC mapMaybeT runMaybeT