StateVar 1.1.0.4 → 1.1.1.0
raw patch · 5 files changed
+27/−9 lines, 5 filesdep ~stmPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: stm
API changes (from Hackage documentation)
+ Data.StateVar: infixr 2 $=!
- Data.StateVar: ($~!) :: (HasUpdate t a b, MonadIO m) => t -> (a -> b) -> m ()
+ Data.StateVar: ($~!) :: (HasUpdate t a b, MonadIO m, a ~ b, HasGetter t a) => t -> (a -> b) -> m ()
- Data.StateVar: ($~) :: (HasUpdate t a b, MonadIO m) => t -> (a -> b) -> m ()
+ Data.StateVar: ($~) :: (HasUpdate t a b, MonadIO m, a ~ b, HasGetter t a) => t -> (a -> b) -> m ()
- Data.StateVar: class HasSetter t b => HasUpdate t a b | t -> a b where ($~) = defaultUpdate ($~!) = defaultUpdateStrict
+ Data.StateVar: class HasSetter t b => HasUpdate t a b | t -> a b
Files
- CHANGELOG.md +4/−0
- LICENSE +1/−1
- README.md +4/−1
- StateVar.cabal +7/−5
- src/Data/StateVar.hs +11/−2
CHANGELOG.md view
@@ -1,3 +1,7 @@+1.1.1.0+-------+* Track recent move of `Contravariant` to `base`.+ 1.1.0.4 ------- * Corrected HasUpdate's superclass constraint.
LICENSE view
@@ -1,5 +1,5 @@ Copyright (c) 2014-2015, Edward Kmett-Copyright (c) 2009-2016, Sven Panne+Copyright (c) 2009-2018, Sven Panne All rights reserved. Redistribution and use in source and binary forms, with or without
README.md view
@@ -1,1 +1,4 @@-[](https://hackage.haskell.org/package/StateVar) [](https://travis-ci.org/haskell-opengl/StateVar)+[](https://hackage.haskell.org/package/StateVar)+[](https://www.stackage.org/lts/package/StateVar)+[](https://www.stackage.org/nightly/package/StateVar)+[](https://travis-ci.org/haskell-opengl/StateVar)
StateVar.cabal view
@@ -1,12 +1,12 @@ name: StateVar-version: 1.1.0.4+version: 1.1.1.0 synopsis: State variables description: This package contains state variables, which are references in the IO monad, like IORefs or parts of the OpenGL state. homepage: https://github.com/haskell-opengl/StateVar bug-reports: https://github.com/haskell-opengl/StateVar/issues-copyright: Copyright (C) 2014-2015 Edward A. Kmett, 2009-2016 Sven Panne+copyright: Copyright (C) 2014-2015 Edward A. Kmett, 2009-2018 Sven Panne license: BSD3 license-file: LICENSE author: Sven Panne and Edward Kmett@@ -20,8 +20,10 @@ GHC == 7.6.3 GHC == 7.8.4 GHC == 7.10.3- GHC == 8.0.1- GHC == 8.1+ GHC == 8.0.2+ GHC == 8.2.2+ GHC == 8.4.1+ GHC == 8.5.* cabal-version: >= 1.10 extra-source-files: README.md@@ -33,7 +35,7 @@ build-depends: base >= 4 && < 5,- stm >= 2.0 && < 2.5,+ stm >= 2.2.0.1 && < 2.5, transformers >= 0.2 && < 0.6 default-language: Haskell2010
src/Data/StateVar.hs view
@@ -10,7 +10,7 @@ -------------------------------------------------------------------------------- -- | -- Module : Data.StateVar--- Copyright : (c) Edward Kmett 2014-2015, Sven Panne 2009-2016+-- Copyright : (c) Edward Kmett 2014-2015, Sven Panne 2009-2018 -- License : BSD3 -- -- Maintainer : Sven Panne <svenpanne@gmail.com>@@ -83,6 +83,9 @@ import Data.Typeable import Foreign.Ptr import Foreign.Storable+#if MIN_VERSION_base(4,12,0)+import Data.Functor.Contravariant+#endif -------------------------------------------------------------------- -- * StateVar@@ -114,6 +117,12 @@ -- permit a very limited range of value assignments, and do not report failure. data StateVar a = StateVar (IO a) (a -> IO ()) deriving Typeable +#if MIN_VERSION_base(4,12,0)+instance Contravariant SettableStateVar where+ contramap f (SettableStateVar k) = SettableStateVar (k . f)+ {-# INLINE contramap #-}+#endif+ -- | Construct a 'StateVar' from two IO actions, one for reading and one for --- writing. makeStateVar@@ -227,7 +236,7 @@ instance HasUpdate (IORef a) a a where r $~ f = liftIO $ atomicModifyIORef r $ \a -> (f a,())-#if __GLASGOW_HASKELL__ >= 706+#if MIN_VERSION_base(4,6,0) r $~! f = liftIO $ atomicModifyIORef' r $ \a -> (f a,()) #else r $~! f = liftIO $ do