Monday, 11 June

9:20—9:30: Opening
9:30—10:30: Invited talk
Refactoring reflected, Simon Thompson The team at Kent have built tools for refactoring programs in Haskell, Erlang and, most recently, OCaml. This talk will reflect on what we have learned in the process about tool building and refactoring for functional languages – and indeed about the languages themselves – drawing examples from past and current work.
10:30—11:00: Break
11:00—12:00: Session chair: Neel Krishnaswami
Liquid: A concurrent calculus with declaring first-order asynchronous functions, Shigeki Suwa, Hiroaki Fukuda and Isao Sasano
12:00—13:30: Lunch
13:30—14:30: Session chair: Alex Gerdes
Colocation of Potential Parallelism in a Distributed Adaptive Run-time System for Parallel Haskell, Evgenij Belikov, Hans-Wolfgang Loidl and Greg Michaelson
Reversible Choreographies in Haskell, Folkert de Vries and Jorge A. Pérez
14:30—16:00: Break
16:00—17:00: Session chair: Hans-Wolfgang Loidl
Intrinsic Currying for C++ Template Metaprograms (reviewed paper), Paul Keir, Andrew Gozillon and Hossein Haeri
On Optimizing Bignum Multiplication, Marco T. Morazan and Shamil Dzhatdoyev

Tuesday, 12 June

9:30—10:30: Session chair: Patrik Jansson
Active-Code Reloading in the OODIDA Platform, Gregor Ulm, Emil Gustavsson and Mats Jirstrand
Towards Optic-Based Algebraic Theories: the Case of Lenses (reviewed paper), Jesús López-González and Juan Manuel Serrano
10:30—11:00: Break
11:00—12:00: Session chair: Simon Thompson
Type Safe Interpreters for Free, Maximilian Algehed, Sólrún Halla Einarsdóttir, Alex Gerdes and Patrik Jansson
12:00—13:30: Lunch
18:00—22:00: Social dinner

Wednesday, 13 June

9:30—10:30: Invited talk
Retrofitting Purity with Comonads, Neel Krishnaswami It is by now well-known how to embed effectful language features such as I/O and state into purely functional languages using a monadic type discipline. But if we already have an effectful language, then it is natural to ask if there a way to carve out a pure subset of it. In this talk, I will show that this is indeed possible, by using the dual to monads – comonads! Furthermore, this approach also casts into type-theoretic our systems-programming friends' use of capability-safe programming.
10:30—11:00: Break
11:00—12:00: Session chair: Marco T. Morazan
Inductive type refinement by conjugate hylomorphisms, Nikita Frolov
Folds, Unfolds, and Metaheuristics: Towards Automatic Rewriting and Derivation of Metaheuristics, Adam Barwell and Kevin Hammond
12:00—13:30: Lunch
13:30—14:30: Session chair: Peter Achten
Improving Haskell (reviewed paper), Martin Handley and Graham Hutton
Graph Reduction Hardware Revisited, Robert Stewart, Evgenij Belikov and Hans-Wolfgang Loidl
14:30—15:00: Break
15:00—16:00: Session chair: Magnus Myreen
High-performance defunctionalization in Futhark, Anders Kiel Hovgaard, Troels Henriksen and Martin Elsman
Strategic Skeleton Composition with Location Aware Remote Data, Lukas Immanuel Schiller
16:00—16:10: Closing remarks

Thursday, 14 June: TFPIE