úÎ ‘§D      !"#$%&'()*+,-./0123456789:;<=>?@ABC(c) Edward Kmett 2018BSD3ekmett@gmail.comstableportableSafe0134567;=>?FTÜ This is a monad homomorphism=Fail with an exception as an excuse instead of just a string..This monad occupies the middle ground between D and Eo in that you can get out an informative error but aren't able to care about its contents, except via bottoms.\Since bottoms are indistinguishable in pure code, one can view this as morally the same as Df, except when things go wrong, you can pass along a complaint, rather than take what you'd get from .import Control.Exception%let x = excuse Overflow :: Perhaps ()Attempting to F a > value is hazardous, as it will contain an embedded exception.x(Can't *** Exception: arithmetic overflowRecovery is possible as  isn't strict in its argument. x <|> Can ()Can () x `seq` ()() 'This partial function can be used like fromJust, but throws the user error. Lift a callCC operation to the new monad. Lift a catchE operation to the new monad. Lift a listen operation to the new monad.Lift a pass operation to the new monad.#Transform the computation inside a PerhapsT.  ( f m) = f ( m)   (c) Edward Kmett 2018BSD3ekmett@gmail.comstableportableSafes  G      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJHKLHMNOperhaps-0-inplaceControl.Monad.Perhaps Data.MaybefromJust Data.Perhaps MonadPerhapsperhapsexcusePerhapsT runPerhapsTPerhapsCanCan'tbelievemayhap liftCallCC liftCatch liftListenliftPass mapPerhapsT$fMonadZipPerhaps$fMonadFixPerhaps$fMonadPlusPerhaps$fMonadFailPerhaps$fMonadPerhaps$fAlternativePerhaps$fApplicativePerhaps$fMonoidPerhaps$fSemigroupPerhaps$fMonadReaderrPerhapsT$fMonadContPerhapsT$fMonadWriterwPerhapsT$fMonadStatesPerhapsT$fMonadIOPerhapsT$fMonadTransPerhapsT$fMonadFixPerhapsT$fMonadZipPerhapsT$fMonadPlusPerhapsT$fMonadFailPerhapsT$fMonadPerhapsT$fAlternativePerhapsT$fApplicativePerhapsT$fMonadPerhapsIdentityT$fMonadPerhapsReaderT$fMonadPerhapsRWST$fMonadPerhapsRWST0$fMonadPerhapsWriterT$fMonadPerhapsWriterT0$fMonadPerhapsStateT$fMonadPerhapsStateT0$fMonadPerhapsPerhapsT$fMonadPerhapsPerhaps$fGenericPerhaps$fGeneric1Perhaps $fDataPerhaps $fEqPerhaps $fOrdPerhaps $fReadPerhaps $fShowPerhaps$fFunctorPerhaps$fFoldablePerhaps$fTraversablePerhaps$fGenericPerhapsT$fGeneric1PerhapsT$fFunctorPerhapsT$fFoldablePerhapsT$fTraversablePerhapsT$fDataPerhapsT$fReadPerhapsT$fShowPerhapsT $fOrdPerhapsT $fEqPerhapsTbaseGHC.BaseMaybe Data.EitherEitherGHC.ShowShow