@@ -44,7 +44,7 @@ module Effectful.Internal.Monad
44 , EffectHandler
44 , EffectHandler
45 , LocalEnv(..)
45 , LocalEnv(..)
46 , HandlerA(..)
46 , HandlerA(..)
47− , runHandlerA
47+ , runHandler
49 -- *** Sending operations
49 -- *** Sending operations
@@ -52,16 +52,16 @@ module Effectful.Internal.Monad
52 -- ** Primitive
52 -- ** Primitive
54 -- *** Running
54 -- *** Running
55− , runEffect
55+ , runData
56− , evalEffect
56+ , evalData
57− , execEffect
57+ , execData
59 -- *** Modification
59 -- *** Modification
60− , getEffect
60+ , getData
61− , putEffect
61+ , putData
62− , stateEffect
62+ , stateData
63− , stateEffectM
63+ , stateDataM
64− , localEffect
64+ , localData
67import Control.Applicative (liftA2)
67import Control.Applicative (liftA2)
@@ -151,12 +151,12 @@ unsafeEff_ m = unsafeEff $ \_ -> m
151-- | Get the current 'UnliftStrategy'.
151-- | Get the current 'UnliftStrategy'.
152unliftStrategy :: IOE :> es => Eff es UnliftStrategy
152unliftStrategy :: IOE :> es => Eff es UnliftStrategy
153unliftStrategy = do
153unliftStrategy = do
154− IdA (IOE unlift) <- getEffect
154+ DataA (IOE unlift) <- getData
155 pure unlift
155 pure unlift
157-- | Locally override the 'UnliftStrategy' with the given value.
157-- | Locally override the 'UnliftStrategy' with the given value.
158withUnliftStrategy :: IOE :> es => UnliftStrategy -> Eff es a -> Eff es a
158withUnliftStrategy :: IOE :> es => UnliftStrategy -> Eff es a -> Eff es a
159−withUnliftStrategy unlift = localEffect $ \_ -> IdA (IOE unlift)
159+withUnliftStrategy unlift = localData $ \_ -> DataA (IOE unlift)
161-- | Create an unlifting function with the current 'UnliftStrategy'.
161-- | Create an unlifting function with the current 'UnliftStrategy'.
@@ -272,7 +272,7 @@ newtype IOE :: Effect where
273-- For running pure computations see 'runPureEff'.
273-- For running pure computations see 'runPureEff'.
274runEff :: Eff '[IOE] a -> IO a
274runEff :: Eff '[IOE] a -> IO a
275−runEff m = unEff (evalEffect (IdA (IOE SeqUnlift)) m) =<< emptyEnv
275+runEff m = unEff (evalData (DataA (IOE SeqUnlift)) m) =<< emptyEnv
277instance IOE :> es => MonadIO (Eff es) where
277instance IOE :> es => MonadIO (Eff es) where
278 liftIO = unsafeEff_
278 liftIO = unsafeEff_
@@ -302,7 +302,7 @@ data Prim :: Effect where
303-- | Run an 'Eff' computation with primitive state-transformer actions.
303-- | Run an 'Eff' computation with primitive state-transformer actions.
304runPrim :: IOE :> es => Eff (Prim : es) a -> Eff es a
304runPrim :: IOE :> es => Eff (Prim : es) a -> Eff es a
305−runPrim = evalEffect (IdA Prim)
305+runPrim = evalData (DataA Prim)
307instance Prim :> es => PrimMonad (Eff es) where
307instance Prim :> es => PrimMonad (Eff es) where
308 type PrimState (Eff es) = RealWorld
308 type PrimState (Eff es) = RealWorld
@@ -338,8 +338,8 @@ data HandlerA :: Effect -> Type where
338 HandlerA :: !(Env es) -> !(EffectHandler e es) -> HandlerA e
338 HandlerA :: !(Env es) -> !(EffectHandler e es) -> HandlerA e
340-- | Run the effect with the given handler.
340-- | Run the effect with the given handler.
341−runHandlerA :: HandlerA e -> Eff (e : es) a -> Eff es a
341+runHandler :: HandlerA e -> Eff (e : es) a -> Eff es a
342−runHandlerA e m = unsafeEff $ \es0 -> do
342+runHandler e m = unsafeEff $ \es0 -> do
343 size0 <- sizeEnv es0
343 size0 <- sizeEnv es0
344 E.bracket (unsafeConsEnv e relinker es0)
344 E.bracket (unsafeConsEnv e relinker es0)
345 (unsafeTailEnv size0)
345 (unsafeTailEnv size0)
@@ -359,44 +359,44 @@ send op = unsafeEff $ \es -> do
359----------------------------------------
359----------------------------------------
360-- Helpers
360-- Helpers
362−runEffect :: adapter e -> Eff (e : es) a -> Eff es (a, adapter e)
362+runData :: DataA e -> Eff (e : es) a -> Eff es (a, DataA e)
363−runEffect e0 m = unsafeEff $ \es0 -> do
363+runData e0 m = unsafeEff $ \es0 -> do
364 size0 <- sizeEnv es0
364 size0 <- sizeEnv es0
365 E.bracket (unsafeConsEnv e0 noRelinker es0)
365 E.bracket (unsafeConsEnv e0 noRelinker es0)
366 (unsafeTailEnv size0)
366 (unsafeTailEnv size0)
367 (\es -> (,) <$> unEff m es <*> getEnv es)
367 (\es -> (,) <$> unEff m es <*> getEnv es)
369−evalEffect :: adapter e -> Eff (e : es) a -> Eff es a
369+evalData :: DataA e -> Eff (e : es) a -> Eff es a
370−evalEffect e m = unsafeEff $ \es0 -> do
370+evalData e m = unsafeEff $ \es0 -> do
371 size0 <- sizeEnv es0
371 size0 <- sizeEnv es0
372 E.bracket (unsafeConsEnv e noRelinker es0)
372 E.bracket (unsafeConsEnv e noRelinker es0)
373 (unsafeTailEnv size0)
373 (unsafeTailEnv size0)
374 (\es -> unEff m es)
374 (\es -> unEff m es)
376−execEffect :: adapter e -> Eff (e : es) a -> Eff es (adapter e)
376+execData :: DataA e -> Eff (e : es) a -> Eff es (DataA e)
377−execEffect e0 m = unsafeEff $ \es0 -> do
377+execData e0 m = unsafeEff $ \es0 -> do
378 size0 <- sizeEnv es0
378 size0 <- sizeEnv es0
379 E.bracket (unsafeConsEnv e0 noRelinker es0)
379 E.bracket (unsafeConsEnv e0 noRelinker es0)
380 (unsafeTailEnv size0)
380 (unsafeTailEnv size0)
381 (\es -> unEff m es *> getEnv es)
381 (\es -> unEff m es *> getEnv es)
383−getEffect :: e :> es => Eff es (adapter e)
383+getData :: e :> es => Eff es (DataA e)
384−getEffect = unsafeEff $ \es -> getEnv es
384+getData = unsafeEff $ \es -> getEnv es
386−putEffect :: e :> es => adapter e -> Eff es ()
386+putData :: e :> es => DataA e -> Eff es ()
387−putEffect e = unsafeEff $ \es -> putEnv es e
387+putData e = unsafeEff $ \es -> putEnv es e
389−stateEffect :: e :> es => (adapter e -> (a, adapter e)) -> Eff es a
389+stateData :: e :> es => (DataA e -> (a, DataA e)) -> Eff es a
390−stateEffect f = unsafeEff $ \es -> stateEnv es f
390+stateData f = unsafeEff $ \es -> stateEnv es f
392−stateEffectM :: e :> es => (adapter e -> Eff es (a, adapter e)) -> Eff es a
392+stateDataM :: e :> es => (DataA e -> Eff es (a, DataA e)) -> Eff es a
393−stateEffectM f = unsafeEff $ \es -> E.mask $ \release -> do
393+stateDataM f = unsafeEff $ \es -> E.mask $ \release -> do
394 (a, e) <- (\e -> release $ unEff (f e) es) =<< getEnv es
394 (a, e) <- (\e -> release $ unEff (f e) es) =<< getEnv es
395 putEnv es e
395 putEnv es e
398−localEffect :: e :> es => (adapter e -> adapter e) -> Eff es a -> Eff es a
398+localData :: e :> es => (DataA e -> DataA e) -> Eff es a -> Eff es a
399−localEffect f m = unsafeEff $ \es -> do
399+localData f m = unsafeEff $ \es -> do
400 E.bracket (stateEnv es $ \e -> (e, f e))
400 E.bracket (stateEnv es $ \e -> (e, f e))
401 (\e -> putEnv es e)
401 (\e -> putEnv es e)
402 (\_ -> unEff m es)
402 (\_ -> unEff m es)