Leuven center!

Grote Markt, Leuven, Belgium


Welcome to the website for IFL 2016, the 28th Symposium on Implementation and Application of Functional Languages. The goal of the IFL symposia is to bring together researchers actively engaged in the implementation and application of functional and function-based programming languages. IFL 2016 will be a venue for researchers to present and discuss new ideas and concepts, work in progress, and publication-ripe results related to the implementation and application of functional languages and function-based programming.


  • The finalized program is now available below. See you tomorrow at IFL 2016!
  • IFL 2016 features 34 accepted presentations. This means a full program from Wednesday morning to Friday evening. The preliminary program is coming soon.


The 28th IFL is organized by the Programming Languages Group of KU Leuven, Belgium. The event will be held in the Auditorium of the 2nd Law of Thermodynamics and the adjacent Machine Room of the thermotechnical institute on Campus Heverlee.

The symposium map marks all important locations.

Getting To Leuven

Leuven is directly connected to Brussels Airport by bus or train. The journey itself takes 13 minutes by train (fare including Diabolo airport tunnel fee: 8.90 EUR), and up to an hour by bus (line 651,652 towards Zaventem-Leuven).

If you arrive through Brussels-South (Charleroi) airport, we suggest you take the Brussels City Shuttle (cheaper to book online, with return fare, but tickets can be bought on the bus also) to the Brussels-Midi train station where you can board a train to Leuven.

If you arrive by high-speed train in the Brussels-Midi or Liège-Guillemins train station, you can board a regular train to Leuven.

Machine room

The Machine Room, Thermotechnical Institute

Getting To The Venue

The venue itself, although located outside the city proper, is easily accessible by the public transportation bus service from Leuven's train station, for example with line 2 towards Heverlee (closest stop: "Heverlee Kasteel Arenberg", the journey may take up to 35 minutes, depending on traffic).

You can also walk to the venue (30 minutes from the center of town, 40 minutes from the station) or cycle (blue bike point, rent a bike near the station).

Additionally, the venue can be reached directly from the airport (and vice versa) by bus line 616. Note that this route may take over an hour.

More Information

For more information, please consult the website of DeLijn, the Flemish public transportation company; belgianrail for train routes or consult Google Maps.


We provide a list of hotel suggestions that are within easy reach of the venue, either by bus or on foot. There are no special IFL 2016 rates. Favorable rates and booking can be done directly with the hotel or through any online hotel brokering service.

You can add your name to let the other participants know where you are staying.

Scope of the Symposium

The goal of the IFL symposia is to bring together researchers actively engaged in the implementation and application of functional and function-based programming languages. IFL 2016 is a venue for researchers to present and discuss new ideas and concepts, work in progress, and publication-ripe results related to the implementation and application of functional languages and function-based programming.

Symposium Program

The symposium runs from Wednesday morning until Friday afternoon. Wednesday and Friday morning will feature keynotes. Thursday afternoon and evening are reserved for the social excursion and the symposium banquet. The regular talks' slots are 25 minutes long.

Here is the list of accepted papers.

Wednesday, August 31

Start End


8:00 8:50


8:50 9:00


Coen De Roover. Functional Programming in an Impure World: A Tool Builder's Perspective

Chair: Christophe Scholliers

9:00 10:00

Morning Session 1

Chair: Christophe Scholliers

  • Justin Dawson, Mark Grebe, David Young and Andrew Gill. How to Tell a Monad to Go Away: Remote monads, and other remote structures
10:00 10:25

Coffee Break

10:25 10:50

Morning Session 2

Chair: Jurriaan Hage

  • Christophe De Troyer, Wolfgang De Meuter and Christophe Scholliers. Practical Session Types
  • Ryan Yates and Michael Scott. Improving STM Performance with Transactional Structs
  • Nikita Frolov. Laying Tiles Ornamentally
10:50 12:05

Lunch Break

12:05 13:30

Afternoon Session 1

Chair: Sven-Bodo Scholz

  • Chide Groenouwe and John-Jules Meyer. Giving Non-Programmers Instant Playful Access to Polymorphism and Algebraic Data Structures through Maramafication
  • Sebastian Nielebock and Frank Ortmeier. Adoption of Lambda-Expressions in Object-Oriented Programs does not necessarily decrease Source Code Size
  • Markus Klinik, Jan Martin Jansen and Rinus Plasmeijer. Predicting Resource Consumption of Higher-Order Workflows
13:30 14:45

Coffee Break

14:45 15:10

Afternoon Session 2

Chair: Marco T. Morazan

  • Victor Cacciari Miraldo and Wouter Swierstra. Structure-aware version control
  • Kanae Tsushima. A semi-embedded incremental parsing
  • Alejandro Serrano and Jurriaan Hage. Typed and Monadic Constraint Handling Rules with Priorities and Disjunction
15:10 16:25

Short Break

16:25 16:40

Afternoon Session 3

Chair: Nicolas Wu

  • Stephen Adams and Simon Thompson. Refactoring Monads as Applicative Functors
  • Alejandro Serrano. Lifting Type Classes and Their Laws Through Applicative Functors
  • Pablo Lamela Seijas and Simon Thompson. Identifying and introducing interfaces and callbacks using Wrangler
16:40 17:55

Thursday, September 1

Start End

Morning Session 3

Chair: Coen De Roover

  • Marco T. Morazan, Lindsey M. Reams and Nicholas R. Olson. Taming Memory Allocation for Lambda
  • Jan Martin Jansen. A Portable VM-based implementation Platform for non-strict Functional Programming Languages
  • Jeffrey Murphy, Bhargav Shivkumar and Lukasz Ziarek. Embedded SML using the MLton compiler
9:00 10:15

Coffee Break

10:15 10:40

Morning Session 4

Chair: Jan Martin Jansen

  • Patrick Kasting, Michael Reichhardt Hansen and Steen Vester. Synthesis of Railway-Signaling Plans using Reachability Games
  • Andor Pénzes and Gábor Páli. Maintainable Software Architecture with Monads, Algebras, and Categories
  • Arjan Oortgiese, John van Groningen, Bas Lijnse and Rinus Plasmeijer. Task Oriented Programming on a Distributed Server Architecture
10:40 11:55

Lunch Break

11:55 13:00

Afternoon Session 4

Chair: Maciej Piróg

  • Doaitse Swierstra, Marcos Viera and Atze Dijkstra. A Lazy Language Needs a Lazy Type System; Introducing Polymorphic Contexts
  • Falco Peijnenburg, Jurriaan Hage and Alejandro Serrano. Type Directives and Type Graphs in Elm
  • Venanzio Capretta, Graham Hutton and Mauro Jaskelioff. Contractive Functions on Infinite Data Structures
13:00 14:15

Coffee Break

14:15 14:40

Afternoon Session 5

Chair: Pieter Koopman

  • Yann Orlarey and Pierre Jouvelot. Signal Rate Inference for Multi-Dimensional Faust
  • Olaf Chitil, Maarten Faddegon and Colin Runciman. A Lightweight Hat: Simple Type-Preserving Instrumentation for Self-Tracing Lazy Functional Programs
  • Maarten Faddegon and Colin Runciman. Test Properties as Oracle for Algorithmic Debugging of Lazy Functional Programs
14:40 15:55


Your choice of:
  • Guided tour of the Stella Artois brewery
  • Guided tour of the historic city of Leuven
16:30 19:00

Symposium Banquet at the Faculty Club


Friday, September 2

Start End


Nicolas Wu. The Implementation and Application of Effect Handlers

Chair: Tom Schrijvers

9:00 10:00

Morning Session 5

Chair: Tom Schrijvers

  • Yorick Sijsling and Wouter Swierstra. Implementing Ornaments Through Reflection
10:00 10:25

Coffee Break

10:25 10:50

Morning Session 6

Chair: Pierre Jouvelot

  • Gabriel Radanne, Vincent Balat, Jérôme Vouillon and Vasilis Papavasileiou. Eliom: tierless Web programming from the ground up
  • Bas Lijnse and Rinus Plasmeijer. Towards Customizable Generic Task User-Interfaces in iTasks
  • Peter Achten, Jurriën Stutterheim, Bas Lijnse and Rinus Plasmeijer. Towards the Layout of Things
  • IFL 2017 Announcement
10:50 12:05

Lunch Break

12:05 13:30

Afternoon Session 6

Chair: Rinus Plasmeijer

  • Keeley Abbott and Eric Walkingshaw. Valkyrie: A DSL for Mixed-Initiative Drone Control
  • David Tolpin, Jan Willem van de Meent, Hongseok Yang, and Frank Wood. Design and Implementation of Probabilistic Programming Language Anglican
  • Paul Griffioen. A Pure Semantics for Assignments
13:30 14:30

Coffee Break

14:30 14:55

Afternoon Session 7

Chair: Venanzio Capretta

  • L. Thomas van Binsbergen, Neil Sculthorpe, Adrian Johnstone and Elizabeth Scott. An Intermediate Language for Efficient Interpretation of Implicitly Modular Structural Operational Semantics
  • Phil Scott, Jacques Fleuriot and Steven Obua. Compiling Purely Structured Programs
14:55 16:10

Important Dates

Submission deadline for draft papers: August 1, 2016
Notification of acceptance for presentation: August 3, 2016
Early registration deadline: August 5, 2016
Late registration deadline: August 12, 2016
Submission deadline for pre-symposium proceedings: August 22, 2016
28th IFL Symposium: August 31 - September 2, 2016
Submission deadline for post-symposium proceedings: December 1, 2016
Notification of acceptance for post-symposium proceedings: January 31, 2017
Camera-ready version for post-symposium proceedings: March 15, 2017

Submission Details

Prospective authors are encouraged to submit papers or extended abstracts to be published in the draft proceedings and to present them at the symposium. All contributions must be written in English. Papers must adhere to the standard ACM SIGPLAN two columns conference format, which can be found at http://www.sigplan.org/Resources/Author/. For the pre-symposium proceedings we adopt a 'weak' page limit of 12 pages. For the post-symposium proceedings the page limit of 12 pages is firm.

Submit through EasyChair

Registration Details

We offer different fees depending on early/late registration and student status:

Student Regular
Early Bird 225 Euros 300 Euros
Late Bird 275 Euros 350 Euros

Registration includes participation in the symposium, lunches, coffee breaks, the excursion and the symposium banquet on Thursday.

Registration is now closed. Click for payment information.

Keynote Speakers

Coen De Roover, University of Brussels

Functional Programming in an Impure World: a Tool Builder's Perspective

Functional programming is a popular choice for building program analysis and transformation tools. Developers, however, expect the resulting tools to integrate with their development environments. Functional tool builders therefore sooner or later face the challenge of integrating with this largely impure world. In the first part of this talk, I will share practical insights gained from developing Eclipse plugins in Clojure. On the one hand, purity has brought several benefits to the implementation of our program transformation plugin. It was, among others, a breeze to parallelize the evolutionary algorithm that recommends edits to a transformation specification. On the other hand, several attempts were needed before the plugins integrated properly with Eclipse. In the second part of the talk, I will address what tool builders can do to improve the situation. A purity analysis for higher-order imperative languages will be presented. Built according to the abstracting abstract machines methodology, this analysis determines the purity of functions based on the side effects they generate or depend upon. As such, it is a first step towards tool support for a symbiosis between pure and impure implementations.

Nicolas Wu, University of Bristol

The Implementation and Application of Effect Handlers

Effect handlers are a way of working with algebraic effects, and an alternative to monad transformers. In this talk, we'll be looking one way to implement them in Haskell, and we'll work through some of their practical applications. Effect handlers offer an approach that is inherently modular when dealing with effects, but there are some practical caveats, which we will explore.

Program Committee

Sandrine BlazyUniversity of Rennes 1
Laura CastroUniversity of A Coruña
Jacques GarrigueNagoya University
Clemens GrelckUniversity of Amsterdam
Zoltan HorvathEötvös Loránd University
Jan Martin JansenNetherlands Defence Academy
Mauro JaskelioffCIFASIS/Universidad Nacional de Rosario
Patricia JohannAppalachian State University
Wolfram KahlMcMaster University
Pieter KoopmanRadboud University Nijmegen
Shin-Cheng MuAcademia Sinica
Henrik NilssonUniversity of Nottingham
Nikolaos PapaspyrouNational Technical University of Athens
Atze van der PloegChalmers University of Technology
Matija PretnarUniversity of Ljubljana
Tillmann RendelUniversity of Tübingen
Christophe ScholliersUniversiteit Gent
Sven-Bodo ScholzHeriot-Watt University
Melinda TothEötvös Loránd University
Tom SchrijversKU Leuven
Meng WangUniversity of Kent
Jeremy YallopUniversity of Cambridge

Steering Committee

The list of Steering Committee members

Organizing Committee

Tom Schrijvers
Alexander Vandenbroucke
Maciej Piróg
Steven Keuchel
Amr Saleh
Klara Marntirosian
George Karachalias
Please direct any questions you may have towards ifl2016@cs.kuleuven.be.

Previous IFL Editions

In cooperation