packages feed

layered-state 1.1.2 → 1.1.3

raw patch · 2 files changed

+13/−12 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Control.Monad.State.Layered: evalDefT :: forall s m a. (Functor m, Default s) => StateT s m a -> m a
+ Control.Monad.State.Layered: evalDefT :: forall s m a. (Monad m, Default s) => StateT s m a -> m a
- Control.Monad.State.Layered: evalT :: forall s m a. Functor m => StateT s m a -> s -> m a
+ Control.Monad.State.Layered: evalT :: forall s m a. Monad m => StateT s m a -> s -> m a
- Control.Monad.State.Layered: execDefT :: forall s m a. (Functor m, Default s) => StateT s m a -> m s
+ Control.Monad.State.Layered: execDefT :: forall s m a. (Monad m, Default s) => StateT s m a -> m s
- Control.Monad.State.Layered: execT :: forall s m a. Functor m => StateT s m a -> s -> m s
+ Control.Monad.State.Layered: execT :: forall s m a. Monad m => StateT s m a -> s -> m s

Files

layered-state.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 9aa62e9756668f40566d023e7ca6588ef4bf863fb729fa397c4cd36ad4fff77b+-- hash: f475bf6f0f3aa7d1f1fc658299308f47b436a4a2c625395df55e3020b62749d4  name:           layered-state-version:        1.1.2+version:        1.1.3 synopsis:       Control structure similar to Control.Monad.State, allowing multiple nested states, distinguishable by provided phantom types. category:       Data stability:      experimental
src/Control/Monad/State/Layered.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE TypeInType             #-} {-# LANGUAGE RankNTypes             #-} {-# LANGUAGE BangPatterns #-}+ {-# EXT      InlineAll              #-} -- {-# LANGUAGE Strict #-} -- https://ghc.haskell.org/trac/ghc/ticket/14815#ticket @@ -144,18 +145,18 @@ stateT = StateT . S.StateT ; {-# INLINE stateT #-}  runT  :: ∀ s m a.              StateT s m a -> s -> m (a, s)-evalT :: ∀ s m a. Functor m => StateT s m a -> s -> m a-execT :: ∀ s m a. Functor m => StateT s m a -> s -> m s-runT    = S.runStateT  . unwrap ; {-# INLINE runT  #-}-evalT m = fmap fst . runT m     ; {-# INLINE evalT #-}-execT m = fmap snd . runT m     ; {-# INLINE execT #-}+evalT :: ∀ s m a. S.Monad m => StateT s m a -> s -> m a+execT :: ∀ s m a. S.Monad m => StateT s m a -> s -> m s+runT  = S.runStateT . unwrap ; {-# INLINE runT  #-}+evalT !m !s = let fst (!a, !_) = a in fst <$> runT m s ; {-# INLINE evalT #-}+execT !m !s = let snd (!_, !a) = a in snd <$> runT m s ; {-# INLINE execT #-}  runDefT  :: ∀ s m a.            Default s  => StateT s m a -> m (a, s)-evalDefT :: ∀ s m a. (Functor m,Default s) => StateT s m a -> m a-execDefT :: ∀ s m a. (Functor m,Default s) => StateT s m a -> m s-runDefT  = flip runT  def ; {-# INLINE runDefT  #-}-evalDefT = flip evalT def ; {-# INLINE evalDefT #-}-execDefT = flip execT def ; {-# INLINE execDefT #-}+evalDefT :: ∀ s m a. (S.Monad m,Default s) => StateT s m a -> m a+execDefT :: ∀ s m a. (S.Monad m,Default s) => StateT s m a -> m s+runDefT  !s = runT  s def ; {-# INLINE runDefT  #-}+evalDefT !s = evalT s def ; {-# INLINE evalDefT #-}+execDefT !s = execT s def ; {-# INLINE execDefT #-}  run  :: ∀ s a. State s a -> s -> (a, s) eval :: ∀ s a. State s a -> s -> a