on master help sign in
Write signatures down without the HasCallStack constraint
dcba309Andrzej Rybczak
effectful-core/src/Effectful/State/Dynamic.hs+10−2
@@ -57,7 +57,11 @@ evalLocalState s0 = reinterpret (L.evalState s0) localState
57execLocalState :: s -> Eff (State s : es) a -> Eff es s
57execLocalState :: s -> Eff (State s : es) a -> Eff es s
58execLocalState s0 = reinterpret (L.execState s0) localState
58execLocalState s0 = reinterpret (L.execState s0) localState
59
59
60−localState :: L.State s :> es => EffectHandler (State s) es
60+localState
61+ :: L.State s :> es
62+ => LocalEnv localEs
63+ -> State s (Eff localEs) a
64+ -> Eff es a
61localState env = \case
65localState env = \case
62 Get -> L.get
66 Get -> L.get
63 Put s -> L.put s
67 Put s -> L.put s
@@ -76,7 +80,11 @@ evalSharedState s0 = reinterpret (S.evalState s0) sharedState
76execSharedState :: s -> Eff (State s : es) a -> Eff es s
80execSharedState :: s -> Eff (State s : es) a -> Eff es s
77execSharedState s0 = reinterpret (S.execState s0) sharedState
81execSharedState s0 = reinterpret (S.execState s0) sharedState
78
82
79−sharedState :: S.State s :> es => EffectHandler (State s) es
83+sharedState
84+ :: S.State s :> es
85+ => LocalEnv localEs
86+ -> State s (Eff localEs) a
87+ -> Eff es a
80sharedState env = \case
88sharedState env = \case
81 Get -> S.get
89 Get -> S.get
82 Put s -> S.put s
90 Put s -> S.put s
effectful-core/src/Effectful/Writer/Dynamic.hs+10−2
@@ -33,7 +33,11 @@ runLocalWriter = reinterpret L.runWriter localWriter
33execLocalWriter :: Monoid w => Eff (Writer w : es) a -> Eff es w
33execLocalWriter :: Monoid w => Eff (Writer w : es) a -> Eff es w
34execLocalWriter = reinterpret L.execWriter localWriter
34execLocalWriter = reinterpret L.execWriter localWriter
35
35
36+localWriter
36−localWriter :: (L.Writer w :> es, Monoid w) => EffectHandler (Writer w) es
37+ :: (L.Writer w :> es, Monoid w)
38+ => LocalEnv localEs
39+ -> Writer w (Eff localEs) a
40+ -> Eff es a
37localWriter env = \case
41localWriter env = \case
38 Tell w -> L.tell w
42 Tell w -> L.tell w
39 Listen m -> localSeqUnlift env $ \unlift -> L.listen (unlift m)
43 Listen m -> localSeqUnlift env $ \unlift -> L.listen (unlift m)
@@ -47,7 +51,11 @@ runSharedWriter = reinterpret S.runWriter sharedWriter
47execSharedWriter :: Monoid w => Eff (Writer w : es) a -> Eff es w
51execSharedWriter :: Monoid w => Eff (Writer w : es) a -> Eff es w
48execSharedWriter = reinterpret S.execWriter sharedWriter
52execSharedWriter = reinterpret S.execWriter sharedWriter
49
53
54+sharedWriter
50−sharedWriter :: (S.Writer w :> es, Monoid w) => EffectHandler (Writer w) es
55+ :: (S.Writer w :> es, Monoid w)
56+ => LocalEnv localEs
57+ -> Writer w (Eff localEs) a
58+ -> Eff es a
51sharedWriter env = \case
59sharedWriter env = \case
52 Tell w -> S.tell w
60 Tell w -> S.tell w
53 Listen m -> localSeqUnlift env $ \unlift -> S.listen (unlift m)
61 Listen m -> localSeqUnlift env $ \unlift -> S.listen (unlift m)