Desugaring Haskell’s do-Notation into Applicative Operations
Simon Marlow, Simon Peyton Jones, Edward Kmett, Andrey Mokhov
An algorithm for translating Haskell’s do-notation into applicative operations where possible, retaining monadic dependencies where necessary. The paper describes the design, implementation, and applications of ApplicativeDo.