Join us for the 10th annual Haskell eXchange, a 3‑day online conference with content selected by developers for developers.
Over these 2 "Pro Track" days, you'll hear the latest from Haskell thought leaders, connect with fellow Haskellers in breakout sessions, and learn new skills in practical, coding-based talks.
Don’t miss this opportunity to learn and share your skills with the world’s most vibrant Haskell gathering.
Book today for only £99
NEW THIS YEAR!
If you've heard of Haskell or Functional Programming but aren't sure where to start, our new free "Novice Track" day is the perfect no-pressure way to learn about Haskell.
Explore Haskell eXchange 2021
Get involved, plan your conference, or start your learning today
Diversity Matters Scholarship
Skills Matter offers scholarships to people from underrepresented groups in tech who wouldn’t otherwise be able to attend.
If you believe you are a member of a group that is underrepresented within the tech community or at technical conferences we encourage you to apply.
All of the talks at the Haskell eXchange are selected by our volunteer Program Committee which evaluates and selects which speakers and topics will be included in the conference program. This committee includes developers, practitioners and enthusiasts of all levels.
This year's Program Committee includes:
Why You Should Consider Haskell for Your Next Production System
Haskell is a top choice for building production software systems. While Haskell does have a large surface area, with many concepts and syntax that will feel unfamiliar to programmers coming from other languages, it is unrivaled in its combination of developer productivity, code maintainability, software reliability, and performance.
In this talk I will cover some of the defining features of Haskell that make it an excellent, industrial-strength language that is well-suited for building commercial software. You'll learn why we consider it our first choice for new projects, and why you should too.
This session will be part of our free Haskell eXchange: Novice Track on 15 November 2021. If you've heard of Haskell or Functional Programming but aren't sure where to start, our new free "Novice Track" day is the perfect no-pressure way to learn about Haskell.
Christian Charukiewicz is a Co-Founder and Partner at Foxhound Systems, a custom software development company with a focus on building fast, secure, and reliable software systems. Prior to founding Foxhound Systems, Christian was the CTO of a Chicago tech startup where he led a team of several engineers and drove the adoption of both Haskell and Elm as languages for building key components of the production system.
Christian has been using functional programming languages professionally since 2016, starting with Elm and then later moving on to Haskell. He is passionate about teaching and has mentored several team members with no prior functional programming experience to become proficient Haskell programmers.
Beyond tech and business, Christian is a cooking enthusiast, avid reader, hobbyist photographer, and enjoys seeking out and brewing unique varieties of coffee.
A tour of linear-base
The first GHC version with the LinearTypes language extension is released early this year. This extension allows using linear arrows, where a function can specify how many times it uses its parameter. This seemingly minor ability opens up the door to many new abstractions; including, but not limited to, safe resource handling, pure mutable collections, and even the ability to manipulate values that are not managed by the garbage collector.
linear-base, the standard library for linearly-typed Haskell programs, provides a fair number of utilities making -XLinearTypes convenient and also implements some of these new abstractions.
There are many in-depth articles and talks about specific uses of
linear-base, but this talk will provide a broader overview of what is possible with
linear-base now; walking through the different areas of the library pointing out their practical use cases; but also what they are lacking and what is being discussed. I hope it will encourage more people to experiment with
linear-base, take part in discussions and become contributors.
Software DeveloperTweag I/O
An Overview of GHC's Constraint Solver
GHC's constraint solver is a notoriously difficult beast to understand, and there aren't many tools available to help us understand the process that GHC goes through while type-checking.
In this talk, we will give an overview of how GHC generates constraints in the process of type-checking, and how it goes about categorising them and solving them. In particular, we will cover:
- Wanted and Given constraints,
- GHC's classification of predicates,
- typeclass instance resolution,
- implication constraints and the recursive nature of constraint solving,
- how type-checking plugins fit in with this story.
In 2017, having completed my mathematics PhD in London (in the field of p-adic Hodge theory), I decided to go back to my roots in the French Pyrénées, to begin working on various Haskell projects, with a focus on graphics. I got to know Haskell's type system in the process, and decided to take things a step further this year: I begun working on GHC under the supervision of Richard Eisenberg, with a focus on type-checking plugins and representation polymorphism. Since then, I've started work at Well-Typed, and continue contributing to GHC.
Haskell in the Enterprise: A Report from in the Belly of the Whale
What is it like to bring Haskell to a large enterprise with an established culture? There are success stories for specialized teams, but what about the mainstream? We've been working in the trenches alongside enterprise developers doing Haskell for more than 3 years and have lots to report. This talk explores what it is like to use Haskell in an environment where the understanding and software engineering experience of developers is very mixed. Ranging from the Haskell language and the ecosystem around it, to how it has impacted the systems and people working with it, we will examine the journey from an introduction that took us into stormy seas and the vision of clear skies ahead.
Flipstone Technology Partners, Inc.
Why and how the external STG interpreter is useful
The external STG interpreter is a from scratch implementation of the STG machine in Haskell. Currently it supports almost all GHC primops and RTS features. It can run real world Haskell programs that were compiled with GHC Whole Program Compiler (GHC-WPC). GHC-WPC is a GHC fork that exports the whole program STG IR.
The external STG interpreter is an excellent tool to study the runtime behaviour of Haskell programs, i.e. it can run/interpret GHC or Pandoc. The implementation of the interpreter is in plain simple Haskell, so it makes compiler backend and tooling development approachable for everyone. It already has a programmable debugger which supports step-by-step evaluation, breakpoints and execution region based inspection. It also can export the whole program memory state and call-graphs to files for further investigation. These features makes it easy to find a memory leak or to identify a performance bottleneck in a large real world Haskell application.
Multi-dimensional Arrays that Do Not Exist
The goal of this talk is to explain delayed arrays, that are available in
massiv library, as well as their roles in fusion and parallelization of operations applied to multi-dimensional arrays.
Immutable arrays in Haskell come with great safety properties and provide opportunities for a variety of optimizations. However, without fusion most operations on arrays do not compose efficiently due to intermediate allocations. Delayed arrays provide us with a reliable fusion framework, which is fully controlled by the user and guided by the type checker.
Many operations on arrays are massively parallel, however the common Haskell technique of evaluating with
pseq and relying on GHC's spark pool is not applicable to unboxed arrays because it relies on laziness. Combination of a custom scheduler and delayed arrays can help us with a solution, so we can benefit from multi-core parallelization.
Designing and Verifying Programs with Formal Specification
Specifications languages have demonstrated themselves as an effective tool for designing and reasoning about complex software systems by capturing a high-level description of the system behavior in temporal logic. Declarative specifications of the intent of a system also serve models that can be checked in a fully automatic way, giving engineers formal guarantees on the correctness of their designs according to their specifications.
In this talk, I will give an overview of Spectacle, a Haskell EDSL for writing formal specifications in the temporal logic of actions, and how specifications written in Spectacle can mechanically verify real-world Haskell programs.
Keynote: Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation
Automatic differentiation is all the rage these days, largely because it is a key enabler for machine learning. But reverse-mode AD (the important kind) is a bit mind bending, and becomes much more so if you want reverse-mode AD for higher order programs (i.e. the kind we love).
In this talk I’ll explain what AD is, and how we can do it for higher order programs, using a series of simple steps that take us a simple-and-obviously-correct version to a weird-but-very-efficient one. At the end of the road we’ll find the Kmett/Pearlmuttter/Siskind ‘ad’ library in Hackage… but I hope we’ll see it with new eyes.
We are honoured to welcome back Simon Peyton Jones to the Haskell eXchange.
Since the very first Haskell eXchange in 2012, we've been lucky to have Simon join us each year to share his unique perspective on everything from front end features to join points , Linear Types, and pattern matching — not to mention last year's very special announcement of the Haskell Foundation.
Senior Principal Researcher
Microsoft Research, Cambridge
Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.
After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research (Cambridge) in 1998.
His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines.
More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much.
Keynote: Generating Programs from Types
Program synthesis is a promising approach to automating low-level aspects of programming by generating code from high-level declarative specifications. But what form should these specifications take? In this talk I will advocate for using types as input to program synthesis. Types are widely adopted by programmers, they can vary in expressiveness and capture both functional and non-functional properties, and finally, type checking is often fully automatic and compositional, which helps the synthesizer find the right program.
I will describe two type-driven program synthesizers we developed. The first one is Synquid, a synthesizer for recursive functional programs that uses expressive refinement types as a specification mechanism. The second one is Hoogle+, which relies on more mainstream Haskell types and generates code snippets by composing functions from Haskell libraries.
Nadia Polikarpova is an assistant professor at UC San Diego, and a member of the Programming Systems group. She received her Ph.D. in Computer Science from ETH Zurich in 2014, and then spent a couple years as a postdoctoral researcher at MIT. Nadia's research interests are in program synthesis, program verification, and type systems. She is a 2020 Sloan Fellow, and a recipient of the 2020 NSF Career Award and the 2020 Intel Rising Stars Award.
Avoiding Quadratic Blow-up During Compilation
There are three main sources of of quadratic blow-up in the
ghc core code generated during compilation. First, we cannot refer to or update a field of records without mentioning all the fields of that record, where it should be noted that type class dictionaries are also records. Second, lack of type level sharing results in a lot of duplication when using data types with constructors that reflect some kind of inductive structure. Third, type family reduction results in large type equality coercions.
In this talk we will take a closer look at each of these problems. We will see how the
large-records library manages to circumvent all of these problems, but we will also discuss the principles involved in the hope that you can apply those in your own code. Although it would be good to tackle these problems at a more fundamental level, this talk focuses on how to deal with these problems with current-day
ghc, not a hypothetical future one.
Edsko has been using Haskell for nearly 20 years, and has been a professional Haskell consultant with Well-Typed for roughly half that time. He holds a PhD in advanced (substructural) type systems for pure functional languages from Trinity College, Dublin.
As a Well-Typed consultant, he has provided training across the world, from Johannesburg to Boston to Singapore. He has worked on a large variety of projects, both open source as well as closed source for specific clients. Some of the open source projects he has contributed to are Cloud Haskell, Hackage, the Hackage security library, ghc, Ziria (a DSL developed by Microsoft) and cabal. Some general purpose libraries he has (co)developed include generics-sop, nothunks, recover-rtti and large-records.
The last few years he has worked as a consultant with IOHK on the Cardano blockchain, where he was responsible for the overall architecture of the consensus layer, designed the hard fork combinator, and did research on formal specification of a crypto wallet and invented a novel coin selection algorithm.
The Haskell eXchange Call for Papers is now closed.
Thank you for your interest We would like to thank everyone who submitted a proposal.
Proposals are now being evaluated by our Program Committee. If you've submitted a talk you should be hearing from our Programming Team very shortly. Thank you for your submissions.
If you've missed the deadline, why not consider submitting to one of our other Call for Papers below.
Check Out Our Other CFPs
Become a sponsor of Haskell eXchange
Whether you're looking to attract talent to your team or accelerate adoption of your tools and products, sponsoring Haskell eXchange is a terrific way to support and connect with our global community of developers working with functional languages like Haskell.
We offer a variety of opportunities for continuous visibility and continuous engagement. Community is at the heart of all we do at Skills Matter, and we believe it is mutually beneficial to foster genuine connections between our members and truly innovative businesses.
Rather than a typical ad hoc event sponsorship, we’ll work with you to create bespoke engagement opportunities that benefit both your business and the Skills Matter community. Whether you’re looking to develop one-to-one relationships with our members, or to showcase your product and spread brand awareness, we’d love to find a way to create meaningful interactions between you and our community.
To discuss sponsorship opportunities please contact the team:
Hold tight, skillscasts coming soon!
Haskell eXchange 2021: Novice Track
One day - Online Conference
This year at Haskell eXchange we've added a special "Novice Track" day for anyone who may have heard of Haskell, but isn't quite sure where to begin. Join us for a day of free talks exploring the fundamentals of functional programming, the basics of Haskell, and real-world uses...haskell functional-programming
Haskell eXchange 2020
Two days - Online Conference
The Haskell eXchange Online is the online edition of the annual conference created for and by the Skills Matter Haskell community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem.haskell ghc functional-programming types haskellx
Haskell eXchange 2019
Two days in London
Back for its eighth instalment, Haskell eXchange is an annual conference created for, and by, the Skills Matter community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem. Everyone is welcome to join, whether you...nix monads cryptocurrency fp ghc haskell functional-programming types
Haskell eXchange 2018
Two days in London
Back for a seventh installment, the Haskell eXchange is an annual conference created for and by the Skills Matter community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem. Everyone is welcome to join, whether...haskell haskellx types functional-programming
HaskellX2gether Community Weekend
Two days in London
Following up on the Haskell eXchange, we will hold a two-day Haskell eXchange Community Weekend - HaskellX2gether. Everyone is welcome, beginners and experts alike, and not just participants at the Haskell eXchange, but everyone who would like to participate in a two-day coding festival.haskell haskellx hackathon hack functional-programming
Haskell eXchange 2017
Two days in London
Back for a sixth installment, the Haskell eXchange is an annual conference created for and by the Skills Matter community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem. Everyone is welcome to join, whether you...haskell haskellx types functional-programming
Haskell eXchange 2016
Two days in London
In its fifth year, the Haskell eXchange is an annual conference created for and by the Skills Matter community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem. Everyone is welcome to join, whether you are an...types monads functional-programming haskell haskellx
Haskell Infrastructure Hackathon 2015
Two days in London
Following up on the Haskell eXchange, we will hold a two-day Haskell Hackathon at Pivotal. Everyone is welcome, beginners and experts alike, and not just participants at the Haskell eXchange, but everyone who would like to participate in a two-day coding festival.haskell haskellx functional-programming monads types
Haskell eXchange 2015
Two days in London
Want to learn about the latest innovations in Haskell? Join 100+ functional programmers to learn modern approaches as well as how Haskell's application in enterprise is changing the way our industry tackles complex engineering problems.haskellx haskell functional-programming monads types
Haskell eXchange 2014
One day in London
Want to join the dots of the Haskell landscape? Eager to hear from those driving innovations in Haskell in various industry and academic fields? Then join Haskell experts and enthusiasts this October for London's premier Haskell conference.haskell functional-programming monads types
Haskell eXchange 2013
One day in London
The second edition of the Haskell eXchange returns to Skills Matter HQ on October 9th. This unique and dedicated Haskell event will pull together Haskell enthusiasts, developers, and thought leaders across Europe.haskell clojure akka functional-programming haskellx
Haskell eXchange 2012
One day in London
Skills Matter is proud to announce the first annual Haskell eXchange. While we're working with Neil Mitchell to put together a fantastic programme for you, we can already tell you that Simon Peyton-Jones is confirmed to make a keynote!
For updates on the latest presentations and speakers,...haskell