@@ -8,12 +8,10 @@ module Effectful.Interpreter
8 -- ** Interpretation
8 -- ** Interpretation
9 , interpret
9 , interpret
10 , interpretM
10 , interpretM
13 -- ** Reinterpretation
12 -- ** Reinterpretation
14 , reinterpret
13 , reinterpret
15 , reinterpretM
14 , reinterpretM
19import Control.Exception
17import Control.Exception
@@ -81,17 +79,6 @@ interpretM interpreter m = unsafeEff $ \es -> do
81 les <- forkEnv es
79 les <- forkEnv es
82 runInterpreter es (Interpreter les $ \k -> interpreter $ unsafeEff_ . k) m
80 runInterpreter es (Interpreter les $ \k -> interpreter $ unsafeEff_ . k) m
84−-- | Interpret a higher order effect with help of a function running local 'Eff'
85−-- operations in 'IO'.
87− :: (forall r localEs. HasCallStack => RunIn localEs IO -> e (Eff localEs) r -> Eff es r)
88− -- ^ The effect handler.
91−interpretIO interpreter m = unsafeEff $ \es -> do
93− runInterpreter es (Interpreter les interpreter) m
95----------------------------------------
82----------------------------------------
96-- Reinterpretation
83-- Reinterpretation
@@ -121,17 +108,3 @@ reinterpretM runLocal interpreter m = unsafeEff $ \es -> do
121 les0 <- forkEnv es
108 les0 <- forkEnv es
122 (`unEff` les0) . runLocal . unsafeEff $ \les -> do
109 (`unEff` les0) . runLocal . unsafeEff $ \les -> do
123 runInterpreter es (Interpreter les $ \k -> interpreter $ unsafeEff_ . k) m
110 runInterpreter es (Interpreter les $ \k -> interpreter $ unsafeEff_ . k) m
125−-- | Interpret a higher order effect using other effects with help of a function
126−-- running local 'Eff' operations in 'IO'.
128− :: (Eff handlerEs a -> Eff es b)
129− -- ^ Introduction of effects encapsulated within the handler.
130− -> (forall r localEs. HasCallStack => RunIn localEs IO -> e (Eff localEs) r -> Eff handlerEs r)
131− -- ^ The effect handler.
134−reinterpretIO runLocal interpreter m = unsafeEff $ \es -> do
136− (`unEff` les0) . runLocal . unsafeEff $ \les -> do
137− runInterpreter es (Interpreter les interpreter) m