Toggle Main Menu Toggle Search

Open Access padlockePrints

Desugaring Haskell's do-notation into applicative operations

Lookup NU author(s): Dr Andrey Mokhov



This is the final published version of a conference proceedings (inc. abstract) that has been published in its final definitive form by ACM, 2016.

For re-use rights please refer to the publisher's terms and conditions.


Monads have taken the world by storm, and are supported by do-notation (at least in Haskell). Programmers are increasingly waking up to the usefulness and ubiquity of Applicatives, but they have so far been hampered by the absence of supporting notation. In this paper we show how to re-use the very same do-notation to work for Applicatives as well, providing efficiency benefits for some types that are both Monad and Applicative, and syntactic convenience for those that are merely Applicative. The result is fully implemented in GHC, and is in use at Facebook to make it easy to write highly-parallel queries in a distributed system.

Publication metadata

Author(s): Marlow S, Peyton-Jones S, Kmett E, Mokhov A

Publication type: Conference Proceedings (inc. Abstract)

Publication status: Published

Conference Name: Proceedings of the 9th International Symposium on Haskell (Haskell 2016)

Year of Conference: 2016

Pages: 92-104

Online publication date: 08/09/2016

Acceptance date: 02/04/2016

Date deposited: 22/08/2016

Publisher: ACM


DOI: 10.1145/2976002.2976007

Library holdings: Search Newcastle University Library for this item

ISBN: 9781450344340