@@ -0,0 +1,20 @@
7+import qualified Control.Monad.STM as S
9+import Effectful.Internal.Effect
10+import Effectful.Internal.Monad
12+-- | Run 'S.STM' computations using the @stm@ library.
13+data STME :: Effect where
16+runSTME :: IOE :> es => Eff (STME : es) a -> Eff es a
17+runSTME = evalEffect (IdE STME)
19+atomically :: STME :> es => S.STM a -> Eff es a
20+atomically = unsafeEff_ . S.atomically