hw-polysemy-0.2.14.7: core/HaskellWorks/Polysemy/Control/Concurrent/STM.hs
module HaskellWorks.Polysemy.Control.Concurrent.STM
( TVar,
atomically,
STM.orElse,
STM.retry,
STM.check,
STM.throwSTM,
STM.catchSTM,
) where
import Control.Concurrent.STM (STM, TVar)
import qualified Control.Concurrent.STM as STM
import Control.Monad.IO.Class (MonadIO (..))
import HaskellWorks.Polysemy.Prelude
import Polysemy
atomically :: forall a r m. ()
=> MonadIO m
=> Member (Embed m) r
=> STM a
-> Sem r a
atomically m =
embed $ liftIO $ STM.atomically m