universum 1.7.0 → 1.7.1
raw patch · 3 files changed
+25/−4 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Universum.Container.Class: instance (GHC.Classes.Eq v, Data.Hashable.Class.Hashable v) => Universum.Container.Class.Container (Data.HashSet.Base.HashSet v)
- Universum.Container.Class: instance Data.Hashable.Class.Hashable k => Universum.Container.Class.One (Data.HashMap.Base.HashMap k v)
- Universum.Container.Class: instance Data.Hashable.Class.Hashable v => Universum.Container.Class.One (Data.HashSet.Base.HashSet v)
- Universum.Container.Class: instance Universum.Container.Class.Container (Data.HashMap.Base.HashMap k v)
- Universum.Container.Class: instance Universum.Container.Class.ToPairs (Data.HashMap.Base.HashMap k v)
+ Universum.Container.Class: instance (GHC.Classes.Eq v, Data.Hashable.Class.Hashable v) => Universum.Container.Class.Container (Data.HashSet.Internal.HashSet v)
+ Universum.Container.Class: instance Data.Hashable.Class.Hashable k => Universum.Container.Class.One (Data.HashMap.Internal.HashMap k v)
+ Universum.Container.Class: instance Data.Hashable.Class.Hashable v => Universum.Container.Class.One (Data.HashSet.Internal.HashSet v)
+ Universum.Container.Class: instance Universum.Container.Class.Container (Data.HashMap.Internal.HashMap k v)
+ Universum.Container.Class: instance Universum.Container.Class.ToPairs (Data.HashMap.Internal.HashMap k v)
+ Universum.Monad.Trans: hoistEither :: Applicative m => Either e a -> ExceptT e m a
+ Universum.Monad.Trans: hoistMaybe :: Applicative m => Maybe a -> MaybeT m a
Files
- CHANGES.md +7/−0
- src/Universum/Monad/Trans.hs +17/−3
- universum.cabal +1/−1
CHANGES.md view
@@ -1,3 +1,10 @@+1.7.1+=====++* [#230](https://github.com/serokell/universum/issues/230):+ Add `hoistMaybe` and `hoistEither` functions + similar to [relude](https://hackage.haskell.org/package/relude-0.7.0.0/docs/Relude-Monad-Trans.html#v:hoistMaybe)+ 1.7.0 =====
src/Universum/Monad/Trans.hs view
@@ -14,13 +14,17 @@ , executingStateT , usingState , usingStateT+ + -- * Convenient functions to work with 'MaybeT' and 'ExceptT' transformers+ , hoistMaybe+ , hoistEither ) where -import Prelude (flip, fst, snd)+import Prelude (Applicative (..), flip, fst, snd) import Universum.Functor (Functor, (<$>))-import Universum.Monad.Reexport (Reader, ReaderT, State, StateT, runReader, runReaderT, runState,- runStateT)+import Universum.Monad.Reexport (Either, ExceptT (..), Maybe, MaybeT (..), Reader, ReaderT, State,+ StateT, runReader, runReaderT, runState, runStateT) -- | Shorter and more readable alias for @flip runReaderT@. usingReaderT :: r -> ReaderT r m a -> m a@@ -65,3 +69,13 @@ executingState :: s -> State s a -> s executingState s st = snd (usingState s st) {-# INLINE executingState #-}++-- | Lift a 'Maybe' to the 'MaybeT' monad+hoistMaybe :: Applicative m => Maybe a -> MaybeT m a+hoistMaybe m = MaybeT (pure m)+{-# INLINE hoistMaybe #-}++-- | Lift a 'Either' to the 'ExceptT' monad+hoistEither :: Applicative m => Either e a -> ExceptT e m a+hoistEither e = ExceptT (pure e)+{-# INLINE hoistEither #-}
universum.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: universum-version: 1.7.0+version: 1.7.1 synopsis: Custom prelude used in Serokell description: See README.md file for more details. homepage: https://github.com/serokell/universum