A New One-Pass Transformation into Monadic Normal Form - Danvy, Olivier (BRICS Report Series, 2002)
We present a translation from the call-by-value lambda-calculus to monadic normal forms that includes short-cut boolean evaluation. The translation is higher-order, operates in one pass, duplicates no code, generates no chains of thunks, and is properly tail recursive. It makes a crucial use of symbolic computation at translation time.