packages feed

multistate 0.8.0.3 → 0.8.0.4

raw patch · 13 files changed

+70/−62 lines, 13 filesdep ~basedep ~hspecdep ~mtl

Dependency ranges changed: base, hspec, mtl, transformers

Files

changelog.md view
@@ -1,5 +1,10 @@ # Changelog for [`multistate` package](https://hackage.haskell.org/package/multistate) +## 0.8.0.4 *January 2022*++  * Adapt for ghc-9.0 and ghc-9.2+  * Clean up code a bit, fix compiler warnings (thanks sergv)+ ## 0.8.0.3 *May 2020*    * Adapt for ghc-8.10
multistate.cabal view
@@ -1,5 +1,5 @@ Name:          multistate-Version:       0.8.0.3+Version:       0.8.0.4 Cabal-Version: >= 1.10 Build-Type:    Simple license:       BSD3@@ -68,7 +68,7 @@   other-modules:     Control.Monad.Trans.MultiGST.Common   build-depends:-    base         >= 4.11  && <4.15,+    base         >= 4.11  && <4.17,     mtl          >= 2.1   && <2.3,     transformers >= 0.3   && <0.6,     tagged       >= 0.7   && <0.9,@@ -79,6 +79,7 @@     TypeFamilies     MultiParamTypeClasses     FunctionalDependencies+    FlexibleContexts     FlexibleInstances     UndecidableInstances     TypeOperators@@ -103,7 +104,7 @@     multistate,     base <999,     transformers <0.6,-    hspec >=2 && <2.8+    hspec >=2 && <2.9   ghc-options:      -Wall   main-is:          Test.hs   hs-source-dirs:   test
src/Control/Monad/Trans/MultiGST/Common.hs view
@@ -1,9 +1,9 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE UndecidableSuperClasses #-} {-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE FlexibleContexts #-}  -- | Common definitions for MultiGST.Strict and MultiGST.Lazy module Control.Monad.Trans.MultiGST.Common
src/Control/Monad/Trans/MultiGST/Lazy.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE UndecidableSuperClasses #-}+{-# LANGUAGE FlexibleContexts #-}  -- | Alternative multi-valued version of mtl's RWS / RWST. In contrast to -- @'MultiRWS'(T)@ this version only takes a single list of types as
src/Control/Monad/Trans/MultiGST/Strict.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE UndecidableSuperClasses #-}+{-# LANGUAGE FlexibleContexts #-}  -- | Alternative multi-valued version of mtl's RWS / RWST. In contrast to -- @'MultiRWS'(T)@ this version only takes a single list of types as
src/Control/Monad/Trans/MultiRWS/Lazy.hs view
@@ -135,7 +135,7 @@   (<*>) = ap  instance (Monad m) => Monad (MultiRWST r w s m) where-  return = MultiRWST . return+  return = pure   k >>= f = MultiRWST $ runMultiRWSTRaw k >>= runMultiRWSTRaw . f  instance MonadTrans (MultiRWST r w s) where
src/Control/Monad/Trans/MultiRWS/Strict.hs view
@@ -136,7 +136,7 @@   (<*>) = ap  instance (Monad m) => Monad (MultiRWST r w s m) where-  return = MultiRWST . return+  return = pure   k >>= f = MultiRWST $ runMultiRWSTRaw k >>= runMultiRWSTRaw . f  instance MonadTrans (MultiRWST r w s) where
src/Control/Monad/Trans/MultiReader/Lazy.hs view
@@ -76,23 +76,23 @@   -- | A Reader transformer monad patameterized by:---   +-- -- * x - The list of types constituting the environment / input (to be read), -- * m - The inner monad.--- +-- -- 'MultiReaderT' corresponds to mtl's 'ReaderT', but can contain -- a heterogenous list of types.--- +-- -- This heterogenous list is represented using Types.Data.List, i.e:--- +-- --   * @'[]@ - The empty list, --   * @a ': b@ - A list where @/a/@ is an arbitrary type --     and @/b/@ is the rest list.--- +-- -- For example,--- +-- -- > MultiReaderT '[Int, Bool] :: (* -> *) -> (* -> *)--- +-- -- is a Reader transformer containing the types [Int, Bool]. newtype MultiReaderT x m a = MultiReaderT {   runMultiReaderTRaw :: StateT (HList x) m a@@ -115,7 +115,7 @@   (<*>) = ap  instance Monad m => Monad (MultiReaderT x m) where-  return = MultiReaderT . return+  return = pure   k >>= f = MultiReaderT $ runMultiReaderTRaw k >>= runMultiReaderTRaw . f  instance MonadTrans (MultiReaderT x) where@@ -209,7 +209,7 @@     runMultiReaderTRaw   pass = MultiReaderT .     mapStateT (pass . liftM (\(~(~(a, f), w)) -> ((a, w), f))) .-    runMultiReaderTRaw  +    runMultiReaderTRaw  instance MonadIO m => MonadIO (MultiReaderT c m) where   liftIO = lift . liftIO
src/Control/Monad/Trans/MultiReader/Strict.hs view
@@ -76,23 +76,23 @@   -- | A Reader transformer monad patameterized by:---   +-- -- * x - The list of types constituting the environment / input (to be read), -- * m - The inner monad.--- +-- -- 'MultiReaderT' corresponds to mtl's 'ReaderT', but can contain -- a heterogenous list of types.--- +-- -- This heterogenous list is represented using Types.Data.List, i.e:--- +-- --   * @'[]@ - The empty list, --   * @a ': b@ - A list where @/a/@ is an arbitrary type --     and @/b/@ is the rest list.--- +-- -- For example,--- +-- -- > MultiReaderT '[Int, Bool] :: (* -> *) -> (* -> *)--- +-- -- is a Reader transformer containing the types [Int, Bool]. newtype MultiReaderT x m a = MultiReaderT {   runMultiReaderTRaw :: StateT (HList x) m a@@ -115,7 +115,7 @@   (<*>) = ap  instance Monad m => Monad (MultiReaderT x m) where-  return = MultiReaderT . return+  return = pure   k >>= f = MultiReaderT $ runMultiReaderTRaw k >>= (runMultiReaderTRaw . f)  instance MonadTrans (MultiReaderT x) where@@ -209,7 +209,7 @@     runMultiReaderTRaw   pass = MultiReaderT .     mapStateT (pass . liftM (\((a, f), w) -> ((a, w), f))) .-    runMultiReaderTRaw  +    runMultiReaderTRaw  instance MonadIO m => MonadIO (MultiReaderT c m) where   liftIO = lift . liftIO
src/Control/Monad/Trans/MultiState/Lazy.hs view
@@ -92,23 +92,23 @@   -- | A State transformer monad patameterized by:---   +-- -- * x - The list of types constituting the state, -- * m - The inner monad.--- +-- -- 'MultiStateT' corresponds to mtl's 'StateT', but can contain -- a heterogenous list of types.--- +-- -- This heterogenous list is represented using Types.Data.List, i.e:--- +-- --   * @'[]@ - The empty list, --   * @a ': b@ - A list where @/a/@ is an arbitrary type --     and @/b/@ is the rest list.--- +-- -- For example,--- +-- -- > MultiStateT '[Int, Bool] :: (* -> *) -> (* -> *)--- +-- -- is a State wrapper containing the types [Int, Bool]. newtype MultiStateT x m a = MultiStateT {   runMultiStateTRaw :: StateT (HList x) m a@@ -132,7 +132,7 @@   (<*>) = ap  instance Monad m => Monad (MultiStateT x m) where-  return = MultiStateT . return+  return = pure   k >>= f = MultiStateT $ runMultiStateTRaw k >>= (runMultiStateTRaw.f)  instance MonadTrans (MultiStateT x) where@@ -223,11 +223,11 @@ withMultiStates = withMultiStatesAS withMultiStatesAS HNil       = liftM (\r -> (r, HNil)) withMultiStatesAS (x :+: xs) = liftM (\(~(~(a, x'), xs')) -> (a, x' :+: xs'))-                        . withMultiStatesAS xs +                        . withMultiStatesAS xs                         . withMultiStateAS x withMultiStatesSA HNil       = liftM (\r -> (HNil, r)) withMultiStatesSA (x :+: xs) = liftM (\(~(~(a, x'), xs')) -> (x' :+: xs', a))-                        . withMultiStatesAS xs +                        . withMultiStatesAS xs                         . withMultiStateAS x withMultiStatesA  HNil       = id withMultiStatesA  (x :+: xs) = withMultiStatesA xs . withMultiStateA x@@ -282,7 +282,7 @@     runMultiStateTRaw   pass = MultiStateT .     mapStateT (pass . liftM (\(~(~(a, f), w)) -> ((a, w), f))) .-    runMultiStateTRaw  +    runMultiStateTRaw  instance MonadIO m => MonadIO (MultiStateT c m) where   liftIO = lift . liftIO
src/Control/Monad/Trans/MultiState/Strict.hs view
@@ -92,23 +92,23 @@   -- | A State transformer monad patameterized by:---   +-- -- * x - The list of types constituting the state, -- * m - The inner monad.--- +-- -- 'MultiStateT' corresponds to mtl's 'StateT', but can contain -- a heterogenous list of types.--- +-- -- This heterogenous list is represented using Types.Data.List, i.e:--- +-- --   * @'[]@ - The empty list, --   * @a ': b@ - A list where @/a/@ is an arbitrary type --     and @/b/@ is the rest list.--- +-- -- For example,--- +-- -- > MultiStateT '[Int, Bool] :: (* -> *) -> (* -> *)--- +-- -- is a State wrapper containing the types [Int, Bool]. newtype MultiStateT x m a = MultiStateT {   runMultiStateTRaw :: StateT (HList x) m a@@ -130,7 +130,7 @@   (<*>) = ap  instance Monad m => Monad (MultiStateT x m) where-  return = MultiStateT . return+  return = pure   k >>= f = MultiStateT $ runMultiStateTRaw k >>= (runMultiStateTRaw.f)  instance MonadTrans (MultiStateT x) where@@ -221,11 +221,11 @@ withMultiStates = withMultiStatesAS withMultiStatesAS HNil       = liftM (\r -> (r, HNil)) withMultiStatesAS (x :+: xs) = liftM (\((a, x'), xs') -> (a, x' :+: xs'))-                        . withMultiStatesAS xs +                        . withMultiStatesAS xs                         . withMultiStateAS x withMultiStatesSA HNil       = liftM (\r -> (HNil, r)) withMultiStatesSA (x :+: xs) = liftM (\((a, x'), xs') -> (x' :+: xs', a))-                        . withMultiStatesAS xs +                        . withMultiStatesAS xs                         . withMultiStateAS x withMultiStatesA  HNil       = id withMultiStatesA  (x :+: xs) = withMultiStatesA xs . withMultiStateA x@@ -280,7 +280,7 @@     runMultiStateTRaw   pass = MultiStateT .     mapStateT (pass . liftM (\((a, f), w) -> ((a, w), f))) .-    runMultiStateTRaw  +    runMultiStateTRaw  instance MonadIO m => MonadIO (MultiStateT c m) where   liftIO = lift . liftIO
src/Control/Monad/Trans/MultiWriter/Lazy.hs view
@@ -85,23 +85,23 @@   -- | A Writer transformer monad patameterized by:---   +-- -- * x - The list of types that can be written (Monoid instances). -- * m - The inner monad.--- +-- -- 'MultiWriterT' corresponds to mtl's 'WriterT', but can contain -- a heterogenous list of types.--- +-- -- This heterogenous list is represented using Types.Data.List, i.e:--- +-- --   * @'[]@ - The empty list, --   * @a ': b@ - A list where @/a/@ is an arbitrary type --     and @/b/@ is the rest list.--- +-- -- For example,--- +-- -- > MultiWriterT '[Int, Bool] :: (* -> *) -> (* -> *)--- +-- -- is a Writer transformer containing the types [Int, Bool]. newtype MultiWriterT x m a = MultiWriterT {   runMultiWriterTRaw :: StateT (HList x) m a@@ -120,7 +120,7 @@   (<*>) = ap  instance Monad m => Monad (MultiWriterT x m) where-  return = MultiWriterT . return+  return = pure   k >>= f = MultiWriterT $ runMultiWriterTRaw k >>= (runMultiWriterTRaw . f)  instance MonadTrans (MultiWriterT x) where
src/Control/Monad/Trans/MultiWriter/Strict.hs view
@@ -85,23 +85,23 @@   -- | A Writer transformer monad patameterized by:---   +-- -- * x - The list of types that can be written (Monoid instances). -- * m - The inner monad.--- +-- -- 'MultiWriterT' corresponds to mtl's 'WriterT', but can contain -- a heterogenous list of types.--- +-- -- This heterogenous list is represented using Types.Data.List, i.e:--- +-- --   * @'[]@ - The empty list, --   * @a ': b@ - A list where @/a/@ is an arbitrary type --     and @/b/@ is the rest list.--- +-- -- For example,--- +-- -- > MultiWriterT '[Int, Bool] :: (* -> *) -> (* -> *)--- +-- -- is a Writer transformer containing the types [Int, Bool]. newtype MultiWriterT x m a = MultiWriterT {   runMultiWriterTRaw :: StateT (HList x) m a@@ -120,7 +120,7 @@   (<*>) = ap  instance Monad m => Monad (MultiWriterT x m) where-  return = MultiWriterT . return+  return = pure   k >>= f = MultiWriterT $ runMultiWriterTRaw k >>= (runMultiWriterTRaw.f)  instance MonadTrans (MultiWriterT x) where