StateVar 1.1.1.1 → 1.2
raw patch · 3 files changed
+22/−4 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.StateVar: instance Data.Functor.Contravariant.Contravariant Data.StateVar.SettableStateVar
+ Data.StateVar: instance Foreign.Storable.Storable a => Data.StateVar.HasGetter (GHC.ForeignPtr.ForeignPtr a) a
+ Data.StateVar: instance Foreign.Storable.Storable a => Data.StateVar.HasSetter (GHC.ForeignPtr.ForeignPtr a) a
+ Data.StateVar: instance Foreign.Storable.Storable a => Data.StateVar.HasUpdate (GHC.ForeignPtr.ForeignPtr a) a a
- Data.StateVar: StateVar :: (IO a) -> (a -> IO ()) -> StateVar a
+ Data.StateVar: StateVar :: IO a -> (a -> IO ()) -> StateVar a
- Data.StateVar: infixr 2 $=!
+ Data.StateVar: infixr 2 $~!
Files
- CHANGELOG.md +4/−0
- StateVar.cabal +3/−3
- src/Data/StateVar.hs +15/−1
CHANGELOG.md view
@@ -1,3 +1,7 @@+1.2+---+* Added instances for `ForeignPtr`.+ 1.1.1.1 ------- * Relaxed upper version bound for `stm`.
StateVar.cabal view
@@ -1,5 +1,5 @@ name: StateVar-version: 1.1.1.1+version: 1.2 synopsis: State variables description: This package contains state variables, which are references in the IO monad,@@ -23,8 +23,8 @@ GHC == 8.0.2 GHC == 8.2.2 GHC == 8.4.3- GHC == 8.6.1- GHC == 8.7.*+ GHC == 8.6.5+ GHC == 8.8.1 cabal-version: >= 1.10 extra-source-files: README.md
src/Data/StateVar.hs view
@@ -10,7 +10,7 @@ -------------------------------------------------------------------------------- -- | -- Module : Data.StateVar--- Copyright : (c) Edward Kmett 2014-2015, Sven Panne 2009-2018+-- Copyright : (c) Edward Kmett 2014-2019, Sven Panne 2009-2018 -- License : BSD3 -- -- Maintainer : Sven Panne <svenpanne@gmail.com>@@ -81,6 +81,7 @@ import Control.Monad.IO.Class import Data.IORef import Data.Typeable+import Foreign.ForeignPtr import Foreign.Ptr import Foreign.Storable #if MIN_VERSION_base(4,12,0)@@ -195,6 +196,10 @@ p $= a = liftIO $ atomically $ writeTVar p a {-# INLINE ($=) #-} +instance Storable a => HasSetter (ForeignPtr a) a where+ p $= a = liftIO $ withForeignPtr p ($= a)+ {-# INLINE ($=) #-}+ -------------------------------------------------------------------- -- * HasUpdate --------------------------------------------------------------------@@ -252,6 +257,10 @@ a <- readTVar r writeTVar r $! f a +instance Storable a => HasUpdate (ForeignPtr a) a a where+ p $~ f = liftIO $ withForeignPtr p ($~ f)+ p $~! f = liftIO $ withForeignPtr p ($~! f)+ -------------------------------------------------------------------- -- * HasGetter --------------------------------------------------------------------@@ -283,3 +292,8 @@ instance HasGetter (IORef a) a where get = liftIO . readIORef {-# INLINE get #-}++instance Storable a => HasGetter (ForeignPtr a) a where+ get p = liftIO $ withForeignPtr p get+ {-# INLINE get #-}+