From 90f5ebf2a4e22495d2ecd756e157b82200b310a8 Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Sun, 2 Oct 2022 21:34:13 +0200 Subject: [PATCH] Quasar.Prelude: Export stm-ltd modules Co-authored-by: Jan Beinke <git@janbeinke.com> --- quasar/quasar.cabal | 1 - quasar/src/Quasar/Prelude.hs | 5 +- quasar/src/Quasar/PreludeSTM.hs | 85 --------------------------------- 3 files changed, 2 insertions(+), 89 deletions(-) delete mode 100644 quasar/src/Quasar/PreludeSTM.hs diff --git a/quasar/quasar.cabal b/quasar/quasar.cabal index 3236bda..d812d3f 100644 --- a/quasar/quasar.cabal +++ b/quasar/quasar.cabal @@ -99,7 +99,6 @@ library Quasar.Observable.ObservablePriority Quasar.Prelude Quasar.PreludeExtras - Quasar.PreludeSTM Quasar.Resources Quasar.Utils.Exceptions Quasar.Utils.ExtraT diff --git a/quasar/src/Quasar/Prelude.hs b/quasar/src/Quasar/Prelude.hs index 8338b57..bebcb18 100644 --- a/quasar/src/Quasar/Prelude.hs +++ b/quasar/src/Quasar/Prelude.hs @@ -1,7 +1,7 @@ module Quasar.Prelude ( module Prelude, module Quasar.PreludeExtras, - module Quasar.PreludeSTM, + module Control.Concurrent.STM.Class, (>=>), (<=<), (<|>), @@ -26,7 +26,6 @@ module Quasar.Prelude Control.Monad.Fix.MonadFix(..), Data.Kind.Type, Data.Kind.Constraint, - Data.Unique.Unique, newUnique, Data.Void.Void, Data.Hashable.Hashable, @@ -79,6 +78,7 @@ import Prelude qualified as P import Control.Applicative ((<|>)) import Control.Applicative qualified import Control.Concurrent.MVar +import Control.Concurrent.STM.Class hiding (registerDelay) import Control.Exception qualified import Control.Monad ((>=>), (<=<)) import Control.Monad qualified @@ -98,7 +98,6 @@ import GHC.Generics qualified import GHC.Stack.Types qualified import GHC.Types qualified import Quasar.PreludeExtras -import Quasar.PreludeSTM {-# WARNING error "Undefined." #-} error :: forall (r :: GHC.Types.RuntimeRep). forall (a :: GHC.Types.TYPE r). GHC.Stack.Types.HasCallStack => String -> a diff --git a/quasar/src/Quasar/PreludeSTM.hs b/quasar/src/Quasar/PreludeSTM.hs deleted file mode 100644 index 1b83c1e..0000000 --- a/quasar/src/Quasar/PreludeSTM.hs +++ /dev/null @@ -1,85 +0,0 @@ -module Quasar.PreludeSTM ( - MonadSTM, - liftSTM, - atomically, - newUniqueSTM, - module Control.Concurrent.STM, - newTVar, - newTVarIO, - readTVar, - readTVarIO, - writeTVar, - modifyTVar, - modifyTVar', - stateTVar, - swapTVar, -) where - -import Control.Concurrent.STM hiding ( - atomically, - newTVar, - newTVarIO, - readTVar, - readTVarIO, - writeTVar, - modifyTVar, - modifyTVar', - stateTVar, - swapTVar, - ) -import Control.Concurrent.STM qualified as STM -import Control.Monad.Base -import Control.Monad.IO.Class -import Data.Unique (Unique, newUnique) -import GHC.Conc (unsafeIOToSTM) -import Prelude - -type MonadSTM = MonadBase STM - -liftSTM :: MonadSTM m => STM a -> m a -liftSTM = liftBase -{-# SPECIALIZE liftSTM :: STM a -> STM a #-} - -atomically :: MonadIO m => STM a -> m a -atomically t = liftIO (STM.atomically t) -{-# SPECIALIZE atomically :: STM a -> IO a #-} - -newUniqueSTM :: MonadSTM m => m Unique -newUniqueSTM = liftSTM (unsafeIOToSTM newUnique) -{-# SPECIALIZE newUniqueSTM :: STM Unique #-} - -newTVar :: MonadSTM m => a -> m (TVar a) -newTVar = liftSTM . STM.newTVar -{-# SPECIALIZE newTVar :: a -> STM (TVar a) #-} - -newTVarIO :: MonadIO m => a -> m (TVar a) -newTVarIO = liftIO . STM.newTVarIO -{-# SPECIALIZE newTVarIO :: a -> IO (TVar a) #-} - -readTVar :: MonadSTM m => TVar a -> m a -readTVar = liftSTM . STM.readTVar -{-# SPECIALIZE readTVar :: TVar a -> STM a #-} - -readTVarIO :: MonadIO m => TVar a -> m a -readTVarIO = liftIO . STM.readTVarIO -{-# SPECIALIZE readTVarIO :: TVar a -> IO a #-} - -writeTVar :: MonadSTM m => TVar a -> a -> m () -writeTVar var = liftSTM . STM.writeTVar var -{-# SPECIALIZE writeTVar :: TVar a -> a -> STM () #-} - -modifyTVar :: MonadSTM m => TVar a -> (a -> a) -> m () -modifyTVar var = liftSTM . STM.modifyTVar var -{-# SPECIALIZE modifyTVar :: TVar a -> (a -> a) -> STM () #-} - -modifyTVar' :: MonadSTM m => TVar a -> (a -> a) -> m () -modifyTVar' var = liftSTM . STM.modifyTVar' var -{-# SPECIALIZE modifyTVar' :: TVar a -> (a -> a) -> STM () #-} - -stateTVar :: MonadSTM m => TVar s -> (s -> (a, s)) -> m a -stateTVar var = liftSTM . STM.stateTVar var -{-# SPECIALIZE stateTVar :: TVar s -> (s -> (a, s)) -> STM a #-} - -swapTVar :: MonadSTM m => TVar a -> a -> m a -swapTVar var = liftSTM . STM.swapTVar var -{-# SPECIALIZE swapTVar :: TVar a -> a -> STM a #-} -- GitLab