on master help sign in
Eff note for the future...
b27ad3eEdwin Brady
effects/Effects.idr+5−1
@@ -175,8 +175,12 @@ eff env (new r prog) k
175eff env (catch prog handler) k
175eff env (catch prog handler) k
176 = catch (eff env prog k)
176 = catch (eff env prog k)
177 (\e => eff env (handler e) k)
177 (\e => eff env (handler e) k)
178+-- FIXME:
179+-- xs is needed explicitly because otherwise the pattern binding for
180+-- 'l' appears too late. Solution seems to be to reorder patterns at the
181+-- end so that everything is in scope when it needs to be.
178eff {xs = [l ::: x]} env (l :- prog) k
182eff {xs = [l ::: x]} env (l :- prog) k
179− = let env' = unlabel {l} env in
183+ = let env' = unlabel env in
180 eff env' prog (\envk, p' => k (relabel l envk) p')
184 eff env' prog (\envk, p' => k (relabel l envk) p')
181
185
182run : Applicative m => Env m xs -> EffM m xs xs' a -> m a
186run : Applicative m => Env m xs -> EffM m xs xs' a -> m a