@@ -3,14 +3,8 @@ module Effectful.Handler
33 send
44
55 -- * Handling effects
6−
7− -- ** Basic handlers
86 , interpret
9− , interpretM
10−
11− -- ** Derived handlers
127 , reinterpret
13− , reinterpretM
148
159 -- ** Handling local 'Eff' operations
1610 , LocalEnv
@@ -81,57 +75,34 @@ send op = unsafeEff $ \es -> do
8175----------------------------------------
8276-- Interpretation
8377
84−-- | Interpret a first order effect.
85−interpret
86− :: (forall r m. HasCallStack => e m r -> Eff es r)
87− -- ^ The effect handler.
88− -> Eff (e : es) a
89− -> Eff es a
90−interpret handler m = unsafeEff $ \es -> do
91− les <- forkEnv es
92− runHandler es (Handler les $ \_ -> handler) m
93−
94−-- | Interpret a higher order effect.
78+-- | Interpret an effect.
9579--
9680-- /Note:/ 'LocalEnv' is for handling local 'Eff' operations using a function
9781-- from the 'localUnlift' family.
98−interpretM
82+interpret
9983 :: (forall r localEs. HasCallStack => LocalEnv localEs -> e (Eff localEs) r -> Eff es r)
10084 -- ^ The effect handler.
10185 -> Eff (e : es) a
10286 -> Eff es a
103−interpretM handler m = unsafeEff $ \es -> do
87+interpret handler m = unsafeEff $ \es -> do
10488 les <- forkEnv es
10589 runHandler es (Handler les handler) m
10690
10791----------------------------------------
10892-- Reinterpretation
10993
110−-- | Interpret a first order effect using other effects.
111−reinterpret
112− :: (Eff handlerEs a -> Eff es b)
113− -- ^ Introduction of effects encapsulated within the handler.
114− -> (forall r m. HasCallStack => e m r -> Eff handlerEs r)
115− -- ^ The effect handler.
116− -> Eff (e : es) a
117− -> Eff es b
118−reinterpret runHandlerEs handler m = unsafeEff $ \es -> do
119− les0 <- forkEnv es
120− (`unEff` les0) . runHandlerEs . unsafeEff $ \les -> do
121− runHandler es (Handler les $ \_ -> handler) m
122−
123−-- | Interpret a higher order effect using other effects.
94+-- | Interpret an effect using other effects.
12495--
12596-- /Note:/ 'LocalEnv' is for handling local 'Eff' operations using a function
12697-- from the 'localUnlift' family.
127−reinterpretM
98+reinterpret
12899 :: (Eff handlerEs a -> Eff es b)
129100 -- ^ Introduction of effects encapsulated within the handler.
130101 -> (forall r localEs. HasCallStack => LocalEnv localEs -> e (Eff localEs) r -> Eff handlerEs r)
131102 -- ^ The effect handler.
132103 -> Eff (e : es) a
133104 -> Eff es b
134−reinterpretM runHandlerEs handler m = unsafeEff $ \es -> do
105+reinterpret runHandlerEs handler m = unsafeEff $ \es -> do
135106 les0 <- forkEnv es
136107 (`unEff` les0) . runHandlerEs . unsafeEff $ \les -> do
137108 runHandler es (Handler les handler) m