multistate 0.7.1.1 → 0.7.1.2
raw patch · 4 files changed
+21/−11 lines, 4 filesdep ~basedep ~hspecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, hspec
API changes (from Hackage documentation)
- Data.HList.HList: (:+:) :: x -> HList xs -> HList (x : xs)
- Data.HList.HList: HNil :: HList '[]
+ Data.HList.HList: [:+:] :: x -> HList xs -> HList (x : xs)
+ Data.HList.HList: [HNil] :: HList '[]
- Control.Monad.MultiWriter: withMultiWriters :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.MultiWriter: withMultiWriters :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.MultiWriter: withMultiWritersAW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.MultiWriter: withMultiWritersAW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.MultiWriter: withMultiWritersW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
+ Control.Monad.MultiWriter: withMultiWritersW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
- Control.Monad.MultiWriter: withMultiWritersWA :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
+ Control.Monad.MultiWriter: withMultiWritersWA :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
- Control.Monad.Trans.MultiRWS: withMultiWriters :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
+ Control.Monad.Trans.MultiRWS: withMultiWriters :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
- Control.Monad.Trans.MultiRWS: withMultiWritersAW :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
+ Control.Monad.Trans.MultiRWS: withMultiWritersAW :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
- Control.Monad.Trans.MultiRWS: withMultiWritersW :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1)
+ Control.Monad.Trans.MultiRWS: withMultiWritersW :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1)
- Control.Monad.Trans.MultiRWS: withMultiWritersWA :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1, a)
+ Control.Monad.Trans.MultiRWS: withMultiWritersWA :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1, a)
- Control.Monad.Trans.MultiRWS.Lazy: withMultiWriters :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
+ Control.Monad.Trans.MultiRWS.Lazy: withMultiWriters :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
- Control.Monad.Trans.MultiRWS.Lazy: withMultiWritersAW :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
+ Control.Monad.Trans.MultiRWS.Lazy: withMultiWritersAW :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
- Control.Monad.Trans.MultiRWS.Lazy: withMultiWritersW :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1)
+ Control.Monad.Trans.MultiRWS.Lazy: withMultiWritersW :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1)
- Control.Monad.Trans.MultiRWS.Lazy: withMultiWritersWA :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1, a)
+ Control.Monad.Trans.MultiRWS.Lazy: withMultiWritersWA :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1, a)
- Control.Monad.Trans.MultiRWS.Strict: withMultiWriters :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
+ Control.Monad.Trans.MultiRWS.Strict: withMultiWriters :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
- Control.Monad.Trans.MultiRWS.Strict: withMultiWritersAW :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
+ Control.Monad.Trans.MultiRWS.Strict: withMultiWritersAW :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (a, HList w1)
- Control.Monad.Trans.MultiRWS.Strict: withMultiWritersW :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1)
+ Control.Monad.Trans.MultiRWS.Strict: withMultiWritersW :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1)
- Control.Monad.Trans.MultiRWS.Strict: withMultiWritersWA :: (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1, a)
+ Control.Monad.Trans.MultiRWS.Strict: withMultiWritersWA :: forall r w1 w2 s m a. (Monoid (HList w1), Monad m, HInit w1) => MultiRWST r (Append w1 w2) s m a -> MultiRWST r w2 s m (HList w1, a)
- Control.Monad.Trans.MultiWriter: withMultiWriters :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.Trans.MultiWriter: withMultiWriters :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.Trans.MultiWriter: withMultiWritersAW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.Trans.MultiWriter: withMultiWritersAW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.Trans.MultiWriter: withMultiWritersW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
+ Control.Monad.Trans.MultiWriter: withMultiWritersW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
- Control.Monad.Trans.MultiWriter: withMultiWritersWA :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
+ Control.Monad.Trans.MultiWriter: withMultiWritersWA :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
- Control.Monad.Trans.MultiWriter.Lazy: withMultiWriters :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.Trans.MultiWriter.Lazy: withMultiWriters :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.Trans.MultiWriter.Lazy: withMultiWritersAW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.Trans.MultiWriter.Lazy: withMultiWritersAW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.Trans.MultiWriter.Lazy: withMultiWritersW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
+ Control.Monad.Trans.MultiWriter.Lazy: withMultiWritersW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
- Control.Monad.Trans.MultiWriter.Lazy: withMultiWritersWA :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
+ Control.Monad.Trans.MultiWriter.Lazy: withMultiWritersWA :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
- Control.Monad.Trans.MultiWriter.Strict: withMultiWriters :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.Trans.MultiWriter.Strict: withMultiWriters :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.Trans.MultiWriter.Strict: withMultiWritersAW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
+ Control.Monad.Trans.MultiWriter.Strict: withMultiWritersAW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (a, HList w1)
- Control.Monad.Trans.MultiWriter.Strict: withMultiWritersW :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
+ Control.Monad.Trans.MultiWriter.Strict: withMultiWritersW :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1)
- Control.Monad.Trans.MultiWriter.Strict: withMultiWritersWA :: (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
+ Control.Monad.Trans.MultiWriter.Strict: withMultiWritersWA :: forall w1 w2 m a. (Monoid (HList w1), Monad m, HInit w1) => MultiWriterT (Append w1 w2) m a -> MultiWriterT w2 m (HList w1, a)
- Data.HList.HList: hInit :: HInit l1 => Proxy l2 -> HList (Append l1 l2) -> HList l1
+ Data.HList.HList: hInit :: forall l2. HInit l1 => Proxy l2 -> HList (Append l1 l2) -> HList l1
- Data.HList.HList: hSplit :: HInit l1 => HList (Append l1 l2) -> (HList l1, HList l2)
+ Data.HList.HList: hSplit :: forall l2. HInit l1 => HList (Append l1 l2) -> (HList l1, HList l2)
Files
- LICENSE +2/−1
- changelog.md +6/−0
- multistate.cabal +9/−8
- src/Control/Monad/Trans/MultiRWS/Strict.hs +4/−2
LICENSE view
@@ -1,4 +1,5 @@-Copyright 2013-2014 Jan Bracker, Lennart Spitzner.+Copyright 2013-2014 Jan Bracker+Copyright 2013-2017 Lennart Spitzner All rights reserved. Redistribution and use in source and binary forms, with or without
changelog.md view
@@ -1,5 +1,11 @@ # Changelog for [`multistate` package](https://hackage.haskell.org/package/multistate) +** 0.7.1.2 *August 2017*++ * Adapt for ghc-8.2+ + * Minor strictness fix for MultiRWS+ ## 0.7.1.1 *May 2016* * Adapt for ghc-8
multistate.cabal view
@@ -1,11 +1,11 @@ Name: multistate-Version: 0.7.1.1+Version: 0.7.1.2 Cabal-Version: >= 1.10 Build-Type: Simple license: BSD3 license-file: LICENSE-Copyright: Jan Bracker, Lennart Spitzner-Maintainer: Lennart Spitzner <lsp@informatik.uni-kiel.de>+Copyright: Copyright (C) 2013-2017 Jan Bracker, 2013-2016 Lennart Spitzner+Maintainer: Lennart Spitzner <hexagoxel@hexagoxel.de> Author: Jan Bracker, Lennart Spitzner Homepage: https://github.com/lspitzner/multistate Bug-reports: https://github.com/lspitzner/multistate/issues@@ -31,9 +31,10 @@ README.md changelog.md -source-repository head+source-repository head { type: git location: git@github.com:lspitzner/multistate.git+} flag build-example description: Build the MultiState-example example program@@ -65,7 +66,7 @@ Control.Monad.Trans.MultiRWS.Strict other-modules: build-depends:- base >= 4.6 && <4.10,+ base >= 4.6 && <4.11, mtl >= 2.1 && <2.3, transformers >= 0.3 && <0.6, tagged >= 0.7 && <0.9,@@ -104,9 +105,9 @@ -- no version constraints necessary, because they are already -- given by library multistate,- base <4.10,+ base <4.11, transformers <0.6,- hspec <2.3+ hspec >=2 && <2.5 ghc-options: -Wall main-is: Test.hs hs-source-dirs: test@@ -121,7 +122,7 @@ -- no version constraints necessary, because they are already -- given by library multistate,- base <4.10,+ base <4.11, mtl <2.3, transformers <0.6 } else {
src/Control/Monad/Trans/MultiRWS/Strict.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE BangPatterns #-} -- | The multi-valued version of mtl's RWS / RWST module Control.Monad.Trans.MultiRWS.Strict@@ -156,7 +157,8 @@ => MonadMultiWriter a (MultiRWST r w s m) where mTell v = MultiRWST $ do (r,w,s) <- get- put $ (r, setHListElem (getHListElem w `mappend` v) w, s)+ let !x' = getHListElem w `mappend` v+ put $ (r, setHListElem x' w, s) #if MIN_VERSION_base(4,8,0) instance {-# OVERLAPPING #-} (Monad m, ContainsType a s)@@ -164,7 +166,7 @@ instance (Monad m, ContainsType a s) #endif => MonadMultiState a (MultiRWST r w s m) where- mSet v = MultiRWST $ do+ mSet !v = MultiRWST $ do (r,w,s) <- get put (r, w, setHListElem v s) mGet = MultiRWST $ do