@@ -70,28 +70,35 @@ tryReadMVar = unsafeEff_ . M.tryReadMVar
7070
7171-- | Lifted 'M.withMVar'.
7272withMVar :: Concurrent :> es => MVar a -> (a -> Eff es b) -> Eff es b
73−withMVar var f = unsafeEff $ \es -> M.withMVar var ((`unEff` es) . f)
73+withMVar var f = unsafeUnliftIO $ \unlift -> do
74+ M.withMVar var $ unlift . f
7475
7576-- | Lifted 'M.withMVarMasked'.
7677withMVarMasked :: Concurrent :> es => MVar a -> (a -> Eff es b) -> Eff es b
77−withMVarMasked var f = unsafeEff $ \es -> M.withMVarMasked var ((`unEff` es) . f)
78+withMVarMasked var f = unsafeUnliftIO $ \unlift -> do
79+ M.withMVarMasked var $ unlift . f
7880
7981-- | Lifted 'M.modifyMVar_'.
8082modifyMVar_ :: Concurrent :> es => MVar a -> (a -> Eff es a) -> Eff es ()
81−modifyMVar_ var f = unsafeEff $ \es -> M.modifyMVar_ var ((`unEff` es) . f)
83+modifyMVar_ var f = unsafeUnliftIO $ \unlift -> do
84+ M.modifyMVar_ var $ unlift . f
8285
8386-- | Lifted 'M.modifyMVar'.
8487modifyMVar :: Concurrent :> es => MVar a -> (a -> Eff es (a, b)) -> Eff es b
85−modifyMVar var f = unsafeEff $ \es -> M.modifyMVar var ((`unEff` es) . f)
88+modifyMVar var f = unsafeUnliftIO $ \unlift -> do
89+ M.modifyMVar var $ unlift . f
8690
8791-- | Lifted 'M.modifyMVarMasked_'.
8892modifyMVarMasked_ :: Concurrent :> es => MVar a -> (a -> Eff es a) -> Eff es ()
89−modifyMVarMasked_ var f = unsafeEff $ \es -> M.modifyMVarMasked_ var ((`unEff` es) . f)
93+modifyMVarMasked_ var f = unsafeUnliftIO $ \unlift -> do
94+ M.modifyMVarMasked_ var $ unlift . f
9095
9196-- | Lifted 'M.modifyMVarMasked'.
9297modifyMVarMasked :: Concurrent :> es => MVar a -> (a -> Eff es (a, b)) -> Eff es b
93−modifyMVarMasked var f = unsafeEff $ \es -> M.modifyMVarMasked var ((`unEff` es) . f)
98+modifyMVarMasked var f = unsafeUnliftIO $ \unlift -> do
99+ M.modifyMVarMasked var $ unlift . f
94100
95101-- | Lifted 'M.mkWeakMVar'.
96102mkWeakMVar :: Concurrent :> es => MVar a -> Eff es () -> Eff es (Weak (MVar a))
97−mkWeakMVar var f = unsafeEff $ \es -> M.mkWeakMVar var ((`unEff` es) f)
103+mkWeakMVar var f = unsafeUnliftIO $ \unlift -> do
104+ M.mkWeakMVar var $ unlift f