packages feed

failure 0.0.0.3 → 0.1.0

raw patch · 2 files changed

+8/−21 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Control.Failure: class (Applicative f, Failure e f) => ApplicativeFailure e f
- Control.Failure: class (Functor f, Failure e f) => FunctorFailure e f
- Control.Failure: class (Monad f, Applicative f, Failure e f) => MonadFailure e f
- Control.Failure: instance (Applicative f, Failure e f) => ApplicativeFailure e f
- Control.Failure: instance (Functor f, Failure e f) => FunctorFailure e f
- Control.Failure: instance (Monad f, Applicative f, Failure e f) => MonadFailure e f
- Control.Failure: instance Failure e (Either e)
- Control.Failure: class Failure e f
+ Control.Failure: class Monad f => Failure e f
- Control.Failure: class Try f where type family Error f
+ Control.Failure: class Try f where { type family Error f; }
- Control.Failure: try :: (Try f, ApplicativeFailure (Error f) f') => f a -> f' a
+ Control.Failure: try :: (Try f, Failure (Error f) f') => f a -> f' a

Files

Control/Failure.hs view
@@ -7,11 +7,8 @@ {-# LANGUAGE FlexibleContexts #-} -- | Type classes for returning failures. module Control.Failure-    ( -- * Type classes+    ( -- * Type class       Failure (..)-    , FunctorFailure-    , ApplicativeFailure-    , MonadFailure       -- * Wrapping failures     , WrapFailure (..)       -- * Convenience 'String' failure@@ -26,20 +23,10 @@ import Prelude hiding (catch) import Control.Exception (throw, catch, Exception, SomeException (..)) import Data.Typeable (Typeable)-import Control.Applicative (Applicative (..)) -class Failure e f where+class Monad f => Failure e f where     failure :: e -> f v-class (Functor f, Failure e f) => FunctorFailure e f-class (Applicative f, Failure e f) => ApplicativeFailure e f-class (Monad f, Applicative f, Failure e f) => MonadFailure e f --- These introduce the need to use undecidables.--- However, since they are merely type class synonyms, this is acceptable.-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- class Failure e f => WrapFailure e f where     -- | Wrap the failure value, if any, with the given function. This is     -- useful in particular when you want all the exceptions returned from a@@ -53,7 +40,7 @@ class Try f where   type Error f   -- Turn a concrete failure into an abstract failure-  try :: ApplicativeFailure (Error f) f' => f a -> f' a+  try :: Failure (Error f) f' => f a -> f' a  -- | Call 'failure' with a 'String'. failureString :: Failure StringException m => String -> m a@@ -75,7 +62,7 @@ instance Exception e => Failure e IO where   failure = Control.Exception.throw -instance Failure e (Either e) where failure = Left+-- not a monad or applicative instance Failure e (Either e) where failure = Left  data NothingException = NothingException   deriving (Show, Typeable)@@ -84,12 +71,12 @@ instance Try Maybe where   type Error Maybe = NothingException   try Nothing      = failure NothingException-  try (Just x)     = pure x+  try (Just x)     = return x  instance Try (Either e) where   type Error (Either e) = e   try (Left  e)         = failure e-  try (Right x)         = pure x+  try (Right x)         = return x  data NullException = NullException   deriving (Show, Typeable)@@ -98,4 +85,4 @@ instance Try [] where   type Error [] = NullException   try []        = failure NullException-  try (x:_)     = pure x+  try (x:_)     = return x
failure.cabal view
@@ -1,5 +1,5 @@ name: failure-version: 0.0.0.3+version: 0.1.0 Cabal-Version:  >= 1.6 build-type: Simple license: PublicDomain