|Version 2 (modified by 11 years ago) (diff),|
Recursive Do Notation
An extended form of
do notation allowing feedback for monads in the MonadFix class.
There are connections to the proposed syntactic support for Arrows using an extended form of
do-noation. In particular, the
Arrowsextension has its own syntax for recursive bindings/feedback. It would clearly be preferable if there was only one variant of
do. Even if the Arrows extensions are not adopted, it does offer a different explicit syntax for recursive bindings through the keyword
rec that arguably is a bit more suggestive of its meaning than
mdo. Conversely, if it is decided to go for implicit recursion, then it would
seem reasonable to opt for the same in the case of Arrows, if possible. If not, then that might be another argument against implicit
- makes programs much more readable that the equivalent forms using
- not backward compatible with Haskell 98, unless a different keyword is used: using a variable before it is bound is treated as recursion.
- a dependency analysis is required to determine the semantics.