COPLAS Talk: Selective Applicative Functors

a Coplas Talk by Simon Marlow, Facebook


Applicative functors and monads have conquered the world of functional programming by providing general and powerful ways of describing effectful computations using pure functions. Applicative functors provide away to compose independent effects that cannot depend on values produced by earlier computations, and all of which are declared statically. Monads extend the applicative interface by making it possible to compose dependent effects, where the value computed by one effect determines all subsequent effects, dynamically.

In this talk I will describe an intermediate abstraction called "Selective Applicative Functors" that requires all effects to be declared statically, but provides a way to select which of the effects to execute dynamically. This intermediate formulation turns out to be useful in a number of different settings, for example in the Haxl framework used at Facebook we use a variant of Selective to define parallel "and" and "or" operations over data-fetching computations.


Simon Marlow is a Software Engineer at Facebook in London. He has previously worked on Haxl, a Haskell-based domain-specific language that is used by the teams fighting spam and malware, and he is currently working on a project to store and query metadata about source code at scale. Simon is a co-author of the Glasgow Haskell Compiler, author of the book “Parallel and Concurrent Programming in Haskell”, and has a string of research publications in functional programming, language design, compilers, and language implementation.

Host: Fritz Henglein, tel. +45-30589576.

All are welcome. No registration required.

Note that Simon is also giving a talk on Haskell in the Data Centre Thursday, April 25th, hosted by Mødegruppe for F#unktionelle Københavnere.

Simon's talks is supported by PROSA, Facebook, Mødegruppe for F#unktionelle Københavnere and the Programming Language and Theory of Computation (PLTC) section at DIKU.