explicit-exception 0.2 → 0.2.0.1
raw patch · 2 files changed
+16/−11 lines, 2 filesdep ~basedep ~semigroupsPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, semigroups
API changes (from Hackage documentation)
- Control.Monad.Exception.Asynchronous.Lazy: ExceptionalT :: m (Exceptional e a) -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: ExceptionalT :: m (Exceptional e a) -> ExceptionalT e (m :: Type -> Type) a
- Control.Monad.Exception.Asynchronous.Lazy: [runExceptionalT] :: ExceptionalT e m a -> m (Exceptional e a)
+ Control.Monad.Exception.Asynchronous.Lazy: [runExceptionalT] :: ExceptionalT e (m :: Type -> Type) a -> m (Exceptional e a)
- Control.Monad.Exception.Asynchronous.Lazy: bindT :: (Monad m, Monoid b) => ExceptionalT e m a -> (a -> ExceptionalT e m b) -> ExceptionalT e m b
+ Control.Monad.Exception.Asynchronous.Lazy: bindT :: forall (m :: Type -> Type) b e a. (Monad m, Monoid b) => ExceptionalT e m a -> (a -> ExceptionalT e m b) -> ExceptionalT e m b
- Control.Monad.Exception.Asynchronous.Lazy: eatNothingT :: Monad m => ExceptionalT (Maybe e) m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: eatNothingT :: forall (m :: Type -> Type) e a. Monad m => ExceptionalT (Maybe e) m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Lazy: forceT :: Monad m => ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: forceT :: forall (m :: Type -> Type) e a. Monad m => ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Lazy: fromSynchronousMonoidT :: (Functor m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: fromSynchronousMonoidT :: forall (m :: Type -> Type) a e. (Functor m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Lazy: fromSynchronousT :: Functor m => a -> ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: fromSynchronousT :: forall (m :: Type -> Type) a e. Functor m => a -> ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Lazy: manyMonoidT :: (Monad m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: manyMonoidT :: forall (m :: Type -> Type) a e. (Monad m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Lazy: mapExceptionT :: Monad m => (e0 -> e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
+ Control.Monad.Exception.Asynchronous.Lazy: mapExceptionT :: forall (m :: Type -> Type) e0 e1 a. Monad m => (e0 -> e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
- Control.Monad.Exception.Asynchronous.Lazy: newtype ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: newtype ExceptionalT e (m :: Type -> Type) a
- Control.Monad.Exception.Asynchronous.Lazy: processToSynchronousT_ :: Monad m => (b -> Maybe (a, b)) -> (a -> ExceptionalT e m ()) -> Exceptional e b -> ExceptionalT e m ()
+ Control.Monad.Exception.Asynchronous.Lazy: processToSynchronousT_ :: forall (m :: Type -> Type) b a e. Monad m => (b -> Maybe (a, b)) -> (a -> ExceptionalT e m ()) -> Exceptional e b -> ExceptionalT e m ()
- Control.Monad.Exception.Asynchronous.Lazy: throwMonoidT :: (Monad m, Monoid a) => e -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Lazy: throwMonoidT :: forall (m :: Type -> Type) a e. (Monad m, Monoid a) => e -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Strict: ExceptionalT :: m (Exceptional e a) -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: ExceptionalT :: m (Exceptional e a) -> ExceptionalT e (m :: Type -> Type) a
- Control.Monad.Exception.Asynchronous.Strict: [runExceptionalT] :: ExceptionalT e m a -> m (Exceptional e a)
+ Control.Monad.Exception.Asynchronous.Strict: [runExceptionalT] :: ExceptionalT e (m :: Type -> Type) a -> m (Exceptional e a)
- Control.Monad.Exception.Asynchronous.Strict: bindT :: (Monad m, Monoid b) => ExceptionalT e m a -> (a -> ExceptionalT e m b) -> ExceptionalT e m b
+ Control.Monad.Exception.Asynchronous.Strict: bindT :: forall (m :: Type -> Type) b e a. (Monad m, Monoid b) => ExceptionalT e m a -> (a -> ExceptionalT e m b) -> ExceptionalT e m b
- Control.Monad.Exception.Asynchronous.Strict: eatNothingT :: Monad m => ExceptionalT (Maybe e) m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: eatNothingT :: forall (m :: Type -> Type) e a. Monad m => ExceptionalT (Maybe e) m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Strict: forceT :: Monad m => ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: forceT :: forall (m :: Type -> Type) e a. Monad m => ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Strict: fromSynchronousMonoidT :: (Functor m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: fromSynchronousMonoidT :: forall (m :: Type -> Type) a e. (Functor m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Strict: fromSynchronousT :: Functor m => a -> ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: fromSynchronousT :: forall (m :: Type -> Type) a e. Functor m => a -> ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Strict: manyMonoidT :: (Monad m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: manyMonoidT :: forall (m :: Type -> Type) a e. (Monad m, Monoid a) => ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Asynchronous.Strict: mapExceptionT :: Monad m => (e0 -> e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
+ Control.Monad.Exception.Asynchronous.Strict: mapExceptionT :: forall (m :: Type -> Type) e0 e1 a. Monad m => (e0 -> e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
- Control.Monad.Exception.Asynchronous.Strict: newtype ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: newtype ExceptionalT e (m :: Type -> Type) a
- Control.Monad.Exception.Asynchronous.Strict: processToSynchronousT_ :: Monad m => (b -> Maybe (a, b)) -> (a -> ExceptionalT e m ()) -> Exceptional e b -> ExceptionalT e m ()
+ Control.Monad.Exception.Asynchronous.Strict: processToSynchronousT_ :: forall (m :: Type -> Type) b a e. Monad m => (b -> Maybe (a, b)) -> (a -> ExceptionalT e m ()) -> Exceptional e b -> ExceptionalT e m ()
- Control.Monad.Exception.Asynchronous.Strict: throwMonoidT :: (Monad m, Monoid a) => e -> ExceptionalT e m a
+ Control.Monad.Exception.Asynchronous.Strict: throwMonoidT :: forall (m :: Type -> Type) a e. (Monad m, Monoid a) => e -> ExceptionalT e m a
- Control.Monad.Exception.Synchronous: ExceptionalT :: m (Exceptional e a) -> ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: ExceptionalT :: m (Exceptional e a) -> ExceptionalT e (m :: Type -> Type) a
- Control.Monad.Exception.Synchronous: [runExceptionalT] :: ExceptionalT e m a -> m (Exceptional e a)
+ Control.Monad.Exception.Synchronous: [runExceptionalT] :: ExceptionalT e (m :: Type -> Type) a -> m (Exceptional e a)
- Control.Monad.Exception.Synchronous: alternativeT :: Monad m => ExceptionalT e m a -> ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: alternativeT :: forall (m :: Type -> Type) e a. Monad m => ExceptionalT e m a -> ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Synchronous: assertT :: Monad m => e -> Bool -> ExceptionalT e m ()
+ Control.Monad.Exception.Synchronous: assertT :: forall (m :: Type -> Type) e. Monad m => e -> Bool -> ExceptionalT e m ()
- Control.Monad.Exception.Synchronous: bracketT :: Monad m => ExceptionalT e m h -> (h -> ExceptionalT e m ()) -> (h -> ExceptionalT e m a) -> ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: bracketT :: forall (m :: Type -> Type) e h a. Monad m => ExceptionalT e m h -> (h -> ExceptionalT e m ()) -> (h -> ExceptionalT e m a) -> ExceptionalT e m a
- Control.Monad.Exception.Synchronous: catchT :: Monad m => ExceptionalT e0 m a -> (e0 -> ExceptionalT e1 m a) -> ExceptionalT e1 m a
+ Control.Monad.Exception.Synchronous: catchT :: forall (m :: Type -> Type) e0 a e1. Monad m => ExceptionalT e0 m a -> (e0 -> ExceptionalT e1 m a) -> ExceptionalT e1 m a
- Control.Monad.Exception.Synchronous: forceT :: Monad m => ExceptionalT e m a -> ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: forceT :: forall (m :: Type -> Type) e a. Monad m => ExceptionalT e m a -> ExceptionalT e m a
- Control.Monad.Exception.Synchronous: fromMaybeT :: Monad m => e -> MaybeT m a -> ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: fromMaybeT :: forall (m :: Type -> Type) e a. Monad m => e -> MaybeT m a -> ExceptionalT e m a
- Control.Monad.Exception.Synchronous: liftT :: Monad m => Exceptional e a -> ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: liftT :: forall (m :: Type -> Type) e a. Monad m => Exceptional e a -> ExceptionalT e m a
- Control.Monad.Exception.Synchronous: manyMonoidT :: (Monad m, Monoid a) => (e0 -> Maybe e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
+ Control.Monad.Exception.Synchronous: manyMonoidT :: forall (m :: Type -> Type) a e0 e1. (Monad m, Monoid a) => (e0 -> Maybe e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
- Control.Monad.Exception.Synchronous: manyT :: Monad m => (e0 -> Maybe e1) -> (a -> b -> b) -> b -> ExceptionalT e0 m a -> ExceptionalT e1 m b
+ Control.Monad.Exception.Synchronous: manyT :: forall (m :: Type -> Type) e0 e1 a b. Monad m => (e0 -> Maybe e1) -> (a -> b -> b) -> b -> ExceptionalT e0 m a -> ExceptionalT e1 m b
- Control.Monad.Exception.Synchronous: mapExceptionT :: Monad m => (e0 -> e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
+ Control.Monad.Exception.Synchronous: mapExceptionT :: forall (m :: Type -> Type) e0 e1 a. Monad m => (e0 -> e1) -> ExceptionalT e0 m a -> ExceptionalT e1 m a
- Control.Monad.Exception.Synchronous: mergeT :: (Monoid e, Monad m) => ExceptionalT e m (a -> b) -> ExceptionalT e m a -> ExceptionalT e m b
+ Control.Monad.Exception.Synchronous: mergeT :: forall e (m :: Type -> Type) a b. (Monoid e, Monad m) => ExceptionalT e m (a -> b) -> ExceptionalT e m a -> ExceptionalT e m b
- Control.Monad.Exception.Synchronous: newtype ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: newtype ExceptionalT e (m :: Type -> Type) a
- Control.Monad.Exception.Synchronous: throwT :: Monad m => e -> ExceptionalT e m a
+ Control.Monad.Exception.Synchronous: throwT :: forall (m :: Type -> Type) e a. Monad m => e -> ExceptionalT e m a
- Control.Monad.Exception.Synchronous: toMaybeT :: Monad m => ExceptionalT e m a -> MaybeT m a
+ Control.Monad.Exception.Synchronous: toMaybeT :: forall (m :: Type -> Type) e a. Monad m => ExceptionalT e m a -> MaybeT m a
Files
explicit-exception.cabal view
@@ -1,6 +1,6 @@ Cabal-Version: 2.2 Name: explicit-exception-Version: 0.2+Version: 0.2.0.1 License: BSD-3-Clause License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -41,7 +41,7 @@ Source-Repository this type: darcs location: https://hub.darcs.net/thielema/explicit-exception/- tag: 0.2+ tag: 0.2.0.1 Flag buildTests description: Build executables that demonstrate some space leaks@@ -51,8 +51,8 @@ Library Build-Depends: transformers >=0.2 && <0.7,- semigroups >=0.1 && <1.0,- deepseq >=1.1 && <1.5+ semigroups >=0.1 && <1,+ deepseq >=1.1 && <1.6 If impl(jhc) Build-Depends: applicative >=1.0 && <1.1,@@ -84,9 +84,9 @@ If flag(buildTests) Build-Depends: explicit-exception,- bytestring >=0.9.0.1 && <0.12,+ bytestring >=0.9.0.1 && <0.13, tar >=0.4 && <0.6,- base+ base >=2 && <5 Else Buildable: False GHC-Options: -Wall@@ -98,8 +98,8 @@ If flag(buildTests) Build-Depends: explicit-exception,- bytestring >=0.9.0.1 && <0.12,- base+ bytestring >=0.9.0.1 && <0.13,+ base >=2 && <5 Else Buildable: False GHC-Options: -Wall@@ -110,7 +110,7 @@ Executable ee-unzip If flag(buildTests) Build-Depends:- base+ base >=2 && <5 Else Buildable: False GHC-Options: -Wall@@ -122,7 +122,7 @@ If flag(buildTests) Build-Depends: transformers,- base+ base >=2 && <5 Else Buildable: False GHC-Options: -Wall
src/Control/Monad/Exception/Synchronous.hs view
@@ -204,6 +204,10 @@ Success a -> a Exception e -> handler e +{-+Semigroup instance could replace (Math.Checksum.IBAN.+++).+-}+ -- like Applicative.<|> infixl 3 `alternative`, `alternativeT` @@ -281,7 +285,8 @@ in a {--A MonadPlus instance would require another class, say DefaultException,+An Alternative/MonadPlus instance would require another class,+say DefaultException, that provides a default exception used for @mzero@. In Control.Monad.Error this is handled by the Error class. Since String is a typical type used for exceptions -