transformers-except 0.1.2 → 0.1.3
raw patch · 2 files changed
+42/−37 lines, 2 filesdep ~textdep ~transformers
Dependency ranges changed: text, transformers
Files
src/Control/Monad/Trans/Except/Extra.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE RankNTypes #-} ----------------------------------------------------------------------------- -- |@@ -44,22 +43,24 @@ , bracketExceptionT , hushM+ , onLeft+ , onNothing ) where import Control.Exception (Exception, IOException, SomeException) import qualified Control.Exception as Exception-import Control.Monad (Monad(..), (=<<))+import Control.Monad (Monad (..), (=<<)) import Control.Monad.Catch (Handler (..), MonadCatch, MonadMask, catchAll, mask, throwM) import qualified Control.Monad.Catch as Catch import Control.Monad.IO.Class (MonadIO, liftIO) import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Except -import Data.Maybe (Maybe(..), maybe)-import Data.Either (Either(..), either)+import Data.Either (Either (..), either) import Data.Foldable (Foldable, foldr)-import Data.Function (($), (.), const, id, flip)-import Data.Functor (Functor(..))+import Data.Function (const, flip, id, ($), (.))+import Data.Functor (Functor (..))+import Data.Maybe (Maybe (..), maybe) import System.IO (IO) @@ -292,3 +293,13 @@ Right a -> return (Just a) Left e -> f e >> return Nothing {-# INLINE hushM #-}++-- | Handle the Left constructor in returned Either.+onLeft :: forall e x m a. Monad m => (e -> ExceptT x m a) -> ExceptT x m (Either e a) -> ExceptT x m a+onLeft h f = f >>= either h return+{-# INLINE onLeft #-}++-- | Handle the Nothing constructor in returned Maybe.+onNothing :: forall x m a. Monad m => ExceptT x m a -> ExceptT x m (Maybe a) -> ExceptT x m a+onNothing h f = f >>= maybe h return+{-# INLINE onNothing #-}
transformers-except.cabal view
@@ -1,41 +1,35 @@-cabal-version: 3.0-name: transformers-except-version: 0.1.2-license: BSD-3-Clause-license-file: LICENSE-author: Tim McGilchrist <timmcgil@gmail.com>-maintainer: Tim McGilchrist <timmcgil@gmail.com>-copyright: (c) 2017 Tim McGilchrist-synopsis: An Except monad transformer with -category: System-build-type: Simple-tested-with: GHC == 8.10.5- , GHC == 8.8.4- , GHC == 8.6.5- , GHC == 8.4.4- , GHC == 8.2.2- , GHC == 8.0.2+cabal-version: 3.0+name: transformers-except+version: 0.1.3+license: BSD-3-Clause+license-file: LICENSE+author: Tim McGilchrist <timmcgil@gmail.com>+maintainer: Tim McGilchrist <timmcgil@gmail.com>+copyright: (c) 2023 Tim McGilchrist+synopsis: An Except monad transformer with+category: System+build-type: Simple+tested-with:+ GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.5 -description: Extra pieces for working with Except+description: Extra pieces for working with Except homepage: http://github.com/tmcgilchrist/transformers-either/ bug-reports: http://github.com/tmcgilchrist/transformers-either/issues+ source-repository head- type: git+ type: git location: https://github.com/tmcgilchrist/transformers-either.git library build-depends:- base >= 4.8 && < 5- , text == 1.2.*- , exceptions >= 0.6 && < 0.11- , transformers >= 0.4 && < 0.6-- ghc-options:- -Wall- default-language: Haskell98- hs-source-dirs:- src+ , base >=4.8 && <5+ , exceptions >=0.6 && <0.11+ , text ^>=1.2+ , transformers >=0.4 && <0.7 + ghc-options: -Wall+ default-language: Haskell98+ hs-source-dirs: src exposed-modules:- Control.Monad.Trans.Except.Extra- Control.Monad.Trans.Except.Exit+ Control.Monad.Trans.Except.Exit+ Control.Monad.Trans.Except.Extra