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 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.
Proceeding Downloads
Signal Rate Inference for Multidimensional Faust
We introduce a new signal-level, type- and rate-based semantic framework for describing a multirate version of the functional, domain-specific Faust language, dedicated to audio signal processing, and here extended to support array-valued samples. If ...
Type Directives and Type Graphs in Elm
We introduce type graphs into Elm in order to improve type error messages for infinite types, and integrate type qualifiers (for type classes a la Haskell) and Elm's row polymorphism into type graphs. We also discuss how specialized type rules and ...
Towards the Layout of Things
When writing a user interface (UI), the layout of its elements play an important role. Programmers should be able to specify the layout of UIs in an intuitive way, while being able to separate the concern of laying out the UI from the rest of the ...
A Portable VM-based implementation Platform for non-strict Functional Programming Languages
The Web has become a paramount deployment platform for computer applications. Modern Web applications require execution of code on both server- and client-side. For the client-side JavaScript is the more-or-less default platform for execution of code. ...
Contractive Functions on Infinite Data Structures
Coinductive data structures, such as streams or infinite trees, have many applications in functional programming and type theory, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they ...
Design and Implementation of Probabilistic Programming Language Anglican
Anglican is a probabilistic programming system designed to interoperate with Clojure and other JVM languages. We introduce the programming language Anglican, outline our design choices, and discuss in depth the implementation of the Anglican language ...
A Lazy Language Needs a Lazy Type System: Introducing Polymorphic Contexts
Most type systems that support polymorphic functions are based on a version of System-F. We argue that this limits useful programming paradigms for languages with lazy evaluation. We motivate an extension of System-F alleviating this limitation.
First, ...
Eliom: tierless Web programming from the ground up
Eliom is a dialect of OCaml for Web programming. It can be used both server and client-side. Server and client sections can also be mixed in the same file using syntactic annotations. This allows one to build a whole application as a single program, in ...
Synthesis of Railway-Signaling Plans using Reachability Games
In this work, we show the feasibility of using functional programming (more specifically F#) in connection with game-based methods for synthesis of correct-by-construction controllers (also called signaling plans) for railway networks. This is a ...
A Lightweight Hat: Simple Type-Preserving Instrumentation for Self-Tracing Lazy Functional Programs
Existing methods for generating a detailed trace of a computation of a lazy functional program are complex. These complications limit the use of tracing in practice. However, such a detailed trace is desirable for understanding and debugging a lazy ...
Identifying and introducing interfaces and callbacks using Wrangler
Duplicating code can make it easier to read in some contexts, but in general it is detrimental in several ways: it increases the compilation time, the size of the source code and, more critically, the cost of maintenance and the probability of ...
Index Terms
- Proceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages