failure 0.0.0.1 → 0.0.0.2
raw patch · 2 files changed
+20/−2 lines, 2 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Control.Failure: instance Applicative DummyMonad
+ Control.Failure: instance ApplicativeFailure e DummyMonad
+ Control.Failure: instance Failure e DummyMonad
+ Control.Failure: instance Functor DummyMonad
+ Control.Failure: instance FunctorFailure e DummyMonad
+ Control.Failure: instance Monad DummyMonad
+ Control.Failure: instance MonadFailure e DummyMonad
Files
- Control/Failure.hs +19/−1
- failure.cabal +1/−1
Control/Failure.hs view
@@ -26,7 +26,8 @@ import Prelude hiding (catch) import Control.Exception (throw, catch, Exception, SomeException (..)) import Data.Typeable (Typeable)-import Control.Applicative (Applicative, pure)+import Control.Applicative (Applicative (..))+import Control.Monad (liftM, ap) class Failure e f where failure :: e -> f v@@ -39,6 +40,23 @@ instance (Functor f, Failure e f) => FunctorFailure e f instance (Applicative f, Failure e f) => ApplicativeFailure e f instance (Monad f, Applicative f, Failure e f) => MonadFailure e f++-- In order to avoid type signature pollution, we provide a single concrete+-- instance of the above typeclass synonyms.+newtype DummyMonad a = DummyMonad a+instance Functor DummyMonad where+ fmap = liftM+instance Applicative DummyMonad where+ pure = return+ (<*>) = ap+instance Monad DummyMonad where+ return = DummyMonad+ (DummyMonad a) >>= f = f a+instance Failure e DummyMonad where+ failure _ = error "DummyMonad should never actually be used"+instance FunctorFailure e DummyMonad+instance ApplicativeFailure e DummyMonad+instance MonadFailure e DummyMonad class Failure e f => WrapFailure e f where -- | Wrap the failure value, if any, with the given function. This is
failure.cabal view
@@ -1,5 +1,5 @@ name: failure-version: 0.0.0.1+version: 0.0.0.2 Cabal-Version: >= 1.6 build-type: Simple license: PublicDomain