packages feed

multistate 0.8.0.0 → 0.8.0.1

raw patch · 11 files changed

+53/−48 lines, 11 filesdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

- Data.HList.HList: instance (GHC.Base.Monoid x, GHC.Base.Monoid (Data.HList.HList.HList xs)) => GHC.Base.Monoid (Data.HList.HList.HList (x : xs))
+ Data.HList.HList: instance (Data.Semigroup.Semigroup x, GHC.Base.Monoid x, Data.Semigroup.Semigroup (Data.HList.HList.HList xs), GHC.Base.Monoid (Data.HList.HList.HList xs)) => GHC.Base.Monoid (Data.HList.HList.HList (x : xs))

Files

changelog.md view
@@ -1,7 +1,12 @@ # Changelog for [`multistate` package](https://hackage.haskell.org/package/multistate) -** 0.8.0.0 *April 2018*+## 0.8.0.1 *October 2018* +  * Adapt for ghc-8.6 (really, this time)+  * Make package -Wcompat-ible++## 0.8.0.0 *April 2018*+   * Adapt for ghc-8.4   * Drop support for ghc<8.0   * Add class `MonadMultiGet` that roughly translates to "any read access"@@ -9,7 +14,7 @@   * Add data-type `MultiGST` that has a single taggified HList instead of the     three r, w, s lists with `MultiRWS` -** 0.7.1.2 *August 2017*+## 0.7.1.2 *August 2017*    * Adapt for ghc-8.2   
multistate.cabal view
@@ -1,10 +1,10 @@ Name:          multistate-Version:       0.8.0.0+Version:       0.8.0.1 Cabal-Version: >= 1.10 Build-Type:    Simple license:       BSD3 license-file:  LICENSE-Copyright:     Copyright (C) 2013-2017 Jan Bracker, 2013-2016 Lennart Spitzner+Copyright:     Copyright (C) 2013 Jan Bracker, 2013-2018 Lennart Spitzner Maintainer:    Lennart Spitzner <hexagoxel@hexagoxel.de> Author:        Jan Bracker, Lennart Spitzner Homepage:      https://github.com/lspitzner/multistate@@ -69,7 +69,7 @@   other-modules:     Control.Monad.Trans.MultiGST.Common   build-depends:-    base         >= 4.9   && <4.12,+    base         >= 4.9   && <4.13,     mtl          >= 2.1   && <2.3,     transformers >= 0.3   && <0.6,     tagged       >= 0.7   && <0.9,@@ -84,6 +84,7 @@     UndecidableInstances     TypeOperators     DataKinds+    LambdaCase   ghc-options: {     -Wall     -fno-warn-unused-imports@@ -106,7 +107,7 @@     multistate,     base <999,     transformers <0.6,-    hspec >=2 && <2.5+    hspec >=2 && <2.6   ghc-options:      -Wall   main-is:          Test.hs   hs-source-dirs:   test
src/Control/Monad/Trans/MultiGST/Common.hs view
@@ -132,7 +132,7 @@  instance Monoid (HListM '[]) where   mempty = HNilM-  mappend _ _ = HNilM+  mappend = (<>)  instance Eq (HListM '[]) where   HNilM == HNilM = True
src/Control/Monad/Trans/MultiRWS/Lazy.hs view
@@ -386,18 +386,18 @@ withMultiStates_ (x :+: xs) = withMultiStates_ xs . withMultiState_ x  withoutMultiReader :: Monad m => MultiRWST rs w s m a -> MultiRWST (r ': rs) w s m a-withoutMultiReader k = MultiRWST $ do-  (rs@(_ :+: rr), w, s) <- get-  ~(a, ~(_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (rr, w, s)-  put (rs, w', s')-  return a+withoutMultiReader k = MultiRWST $ get >>= \case+  (rs@(_ :+: rr), w, s) -> do+    ~(a, ~(_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (rr, w, s)+    put (rs, w', s')+    return a  withoutMultiState :: Monad m => MultiRWST r w ss m a -> MultiRWST r w (s ': ss) m a-withoutMultiState k = MultiRWST $ do-  (r, w, s :+: sr) <- get-  ~(a, ~(_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (r, w, sr)-  put (r, w', s :+: s')-  return a+withoutMultiState k = MultiRWST $ get >>= \case+  (r, w, s :+: sr) -> do+    ~(a, ~(_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (r, w, sr)+    put (r, w', s :+: s')+    return a  inflateReader :: (Monad m, ContainsType r rs)               => ReaderT r m a
src/Control/Monad/Trans/MultiRWS/Strict.hs view
@@ -388,18 +388,18 @@ withMultiStates_ (x :+: xs) = withMultiStates_ xs . withMultiState_ x  withoutMultiReader :: Monad m => MultiRWST rs w s m a -> MultiRWST (r ': rs) w s m a-withoutMultiReader k = MultiRWST $ do-  (rs@(_ :+: rr), w, s) <- get-  (a, (_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (rr, w, s)-  put (rs, w', s')-  return a+withoutMultiReader k = MultiRWST $ get >>= \case+  (rs@(_ :+: rr), w, s) -> do+    (a, (_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (rr, w, s)+    put (rs, w', s')+    return a  withoutMultiState :: Monad m => MultiRWST r w ss m a -> MultiRWST r w (s ': ss) m a-withoutMultiState k = MultiRWST $ do-  (r, w, s :+: sr) <- get-  (a, (_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (r, w, sr)-  put (r, w', s :+: s')-  return a+withoutMultiState k = MultiRWST $ get >>= \case+  (r, w, s :+: sr) -> do+    (a, (_, w', s')) <- lift $ runStateT (runMultiRWSTRaw k) (r, w, sr)+    put (r, w', s :+: s')+    return a  inflateReader :: (Monad m, ContainsType r rs)               => ReaderT r m a
src/Control/Monad/Trans/MultiReader/Lazy.hs view
@@ -186,9 +186,8 @@ withMultiReaders_ (x :+: xs) = withMultiReaders_ xs . withMultiReader_ x  withoutMultiReader :: Monad m => MultiReaderT rs m a -> MultiReaderT (r ': rs) m a-withoutMultiReader k = MultiReaderT $ do-  _ :+: rr <- get-  lift $ runMultiReaderT rr k+withoutMultiReader k = MultiReaderT $ get >>= \case+  (_ :+: rr) -> lift $ runMultiReaderT rr k  inflateReader :: (Monad m, ContainsType r rs)               => ReaderT r m a
src/Control/Monad/Trans/MultiReader/Strict.hs view
@@ -186,9 +186,8 @@ withMultiReaders_ (x :+: xs) = withMultiReaders_ xs . withMultiReader_ x  withoutMultiReader :: Monad m => MultiReaderT rs m a -> MultiReaderT (r ': rs) m a-withoutMultiReader k = MultiReaderT $ do-  _ :+: rr <- get-  lift $ runMultiReaderT rr k+withoutMultiReader k = MultiReaderT $ get >>= \case+  (_ :+: rr) -> lift $ runMultiReaderT rr k  inflateReader :: (Monad m, ContainsType r rs)               => ReaderT r m a
src/Control/Monad/Trans/MultiState/Lazy.hs view
@@ -239,11 +239,11 @@ withMultiStates_ (x :+: xs)  = withMultiStates_ xs . withMultiState_ x  withoutMultiState :: (Functor m, Monad m) => MultiStateT ss m a -> MultiStateT (s ': ss) m a-withoutMultiState k = MultiStateT $ do-  s :+: sr <- get-  ~(a, sr') <- lift $ runMultiStateT sr k-  put (s :+: sr')-  return a+withoutMultiState k = MultiStateT $ get >>= \case+  s :+: sr -> do+    ~(a, sr') <- lift $ runMultiStateT sr k+    put (s :+: sr')+    return a  inflateState :: (Monad m, ContainsType s ss)              => StateT s m a
src/Control/Monad/Trans/MultiState/Strict.hs view
@@ -237,11 +237,11 @@ withMultiStates_ (x :+: xs)  = withMultiStates_ xs . withMultiState_ x  withoutMultiState :: (Functor m, Monad m) => MultiStateT ss m a -> MultiStateT (s ': ss) m a-withoutMultiState k = MultiStateT $ do-  s :+: sr <- get-  (a, sr') <- lift $ runMultiStateT sr k-  put (s :+: sr')-  return a+withoutMultiState k = MultiStateT $ get >>= \case+  s :+: sr -> do+    (a, sr') <- lift $ runMultiStateT sr k+    put (s :+: sr')+    return a  inflateState :: (Monad m, ContainsType s ss)              => StateT s m a
src/Data/HList/HList.hs view
@@ -52,13 +52,12 @@  instance Monoid (HList '[]) where   mempty = HNil-  mappend _ _ = HNil-instance (Monoid x, Monoid (HList xs))+  mappend = (<>)+instance (Semigroup x, Monoid x, Semigroup (HList xs), Monoid (HList xs))       => Monoid (HList (x ': xs))   where     mempty = mempty :+: mempty-    mappend (x1 :+: xs1) (x2 :+: xs2) = (x1 `mappend` x2)-                                    :+: (xs1 `mappend` xs2)+    mappend = (<>)  instance Eq (HList '[]) where   HNil == HNil = True
test/Test.hs view
@@ -12,6 +12,8 @@ import Data.Functor.Identity import Data.HList.HList import Data.Monoid+import Data.Semigroup+ import qualified Control.Monad.Trans.MultiState as MS import qualified Control.Monad.Trans.MultiReader as MR import qualified Control.Monad.Trans.MultiWriter as MW@@ -35,7 +37,7 @@ runnerMS x m = runEvalMS $ MS.withMultiStateA x m runnerMR :: a -> MR.MultiReaderT '[a] Identity a -> a runnerMR x m = runEvalMR $ MR.withMultiReader x m-runnerMW :: Monoid a => MW.MultiWriterT '[a] Identity b -> a+runnerMW :: (Semigroup a, Monoid a) => MW.MultiWriterT '[a] Identity b -> a runnerMW m = case runExecMW m of (x :+: _) -> x -- TODO: ghc bug?: warning on: -- runnerMW m = case runExecMW m of (x :+: HNil) -> x