Monads for functional programming (PDF, 31 pp.).