packages feed

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 -