Combining events and threads for scalable network services implementation and evaluation of monadic, application-level concurrency primitives
Monads for functional programming