HOPE is a (fairly) new workshop that is intended to bring together researchers interested in the design, semantics, implementation, and verification of higher-order effectful programs. It will be informal, consisting of invited talks, contributed talks on work in progress, and open-ended discussion sessions. The HOPE workshops are dedicated to John Reynolds, whose work is an inspiration to us all.

Goals of the Workshop

A recurring theme in many papers at ICFP, and in the research of many ICFP attendees, is the interaction of higher-order programming with various kinds of effects: storage effects, I/O, control effects, concurrency, etc. While effects are of critical importance in many applications, they also make it hard to build, maintain, and reason about one's code. Higher-order languages (both functional and object-oriented) provide a variety of abstraction mechanisms to help "tame" or "encapsulate" effects (e.g. monads, ADTs, ownership types, typestate, first-class events, transactions, Hoare Type Theory, session types, substructural and region-based type systems), and a number of different semantic models and verification technologies have been developed in order to codify and exploit the benefits of this encapsulation (e.g. bisimulations, step-indexed Kripke logical relations, higher-order separation logic, game semantics, various modal logics). But there remain many open problems, and the field is highly active.

The goal of the HOPE workshop is to bring researchers from a variety of different backgrounds and perspectives together to exchange new and exciting ideas concerning the design, semantics, implementation, and verification of higher-order effectful programs.

We want HOPE to be as informal and interactive as possible. The program will thus involve a combination of invited talks, contributed talks about work in progress, and open-ended discussion sessions. There will be no published proceedings, but participants will be invited to submit working documents, talk slides, etc. to be posted on this website.

Program for September 18, 2016

Welcome and Invited Talk
09:00 Introduction
Aleks Nanevski and Lars Birkedal
09:15 Effective programming: bringing algebraic effects and handlers to OCaml
Leo White
10:15 Coffee Break

Session 1
10:45 Effects as Capabilities
Fengyun Liu, Nicolas Stucki, Sandro Stucki, Nada Amin and Martin Odersky
11:15 A Logical Account of a Type-and-Effect System
Morten Krogh-Jespersen, Kasper Svendsen and Lars Birkedal
11:45 Simple Dependent Polymorphic I/O Effects
Amin Timany and Bart Jacobs
12:15 Lunch

Session 2
14:00 Concurrent Data Structures Linked in Time
Germán Andrés Delbianco, Ilya Sergey, Aleksandar Nanevski and Anindya Banerjee
14:30 Growing a Proof Assistant
William Bowman
15:00 Coffee Break

Session 3
15:30 Type Directed Compilation of Row-typed Algebraic Effects
Daan Leijen
16:00 Administrative normal form, continued: Sharing control in direct style
Luke Maurer, Paul Downen, Zena Ariola and Simon Peyton Jones
16:30 Coffee Break

Session 4
17:00 Functional models of full ground, and general, reference cells
Ohad Kammar and Sean Moss

Invited Talk

Effective programming: bringing algebraic effects and handlers to OCaml

Leo White, Jane Street

Algebraic effects were originally introduced to study the semantics of computational effects. With the addition of handlers they have become an exciting new programming construct for implementing such effects. Languages such as Eff have demonstrated that handlers can be used as a more composable alternative to monads for implementing effects in a pure language.

OCaml provides many standard effects, such as mutable state, built into the language. Those effects not built into the language, for example concurrency, are traditionally implemented using monads. The first part of this talk will describe work to implement native algebraic effects for OCaml. The original motivation for this work was to provide built-in support for concurrency in OCaml without tying the language to a particular concurrency implementation. However, algebraic effects support many interesting examples beyond concurrency.

As with exceptions, algebraic effects risk being performed in a context where they will not be handled. Type systems designed to track the side-effects of expressions have been around for many years, and seem eminently suitable for ensuring all algebraic effects are appropriately handled. Recent developments in languages such as Koka have begun to produce effect systems that are genuinely usable, but they have yet to breakthrough into a more mainstream language. The second part of this talk will describe work to integrate an effect system into OCaml whilst maintaining backwards compatibility. This system both prevents effects from going unhandled and turns OCaml into a pure functional language: successfully tracking the purity of functions through their types.

The talk will discuss the interesting questions and challenges that still remain before this work is ready for release into OCaml.

This is joint work with Stephen Dolan, Matija Pretnar and KC Sivaramakrishnan.

Call for Talk Proposals

We solicit proposals for contributed talks. We recommend preparing proposals of at most 2 pages, in either plain text or PDF format. However, we will accept longer proposals or submissions to other conferences, under the understanding that PC members are only expected to read the first two pages of such longer submissions. When submitting talk proposals, authors should specify how long a talk the speaker wishes to give. By default, contributed talks will be 30 minutes long, but proposals for shorter or longer talks will also be considered. Speakers may also submit supplementary material (e.g. a full paper, talk slides) if they desire, which PC members are free (but not expected) to read.

We are interested in talks on all topics related to the interaction of higher-order programming and computational effects. Talks about work in progress are particularly encouraged. If you have any questions about the relevance of a particular topic, please contact the PC chairs, Aleks Nanevski (aleks.nanevski@imdea.org) and Lars Birkedal (birkedal@cs.au.dk).

Deadline for talk proposals (extended):     June 19, 2016 (Sunday)
Notification of acceptance:     July 15, 2016 (Friday)
Workshop:     September 18, 2016 (Sunday)

The submission website is now closed.

Workshop Organization

Program Co-Chairs
Aleks Nanevski (IMDEA Software Institute)
Lars Birkedal (Aarhus University)
Program Committee
Robert Atkey (University of Strathclyde)
Nick Benton (Microsoft Research)
Josh Berdine (Facebook)
Dominique Devriese (KU Leuven)
Dan Ghica (University of Birmingham)
Guilhem Jaber (Université Paris Diderot)
Andrzej Murawski (University of Warwick)
François Pottier (INRIA Paris)
Stephanie Weirich (University of Pennsylvania)
Beta Ziliani (CONICET/FAMAF, Univ. Nacional de Córdoba)

The HOPE workshop adheres to ACM's anti-harassment policy.