BFPG Meetup - November 2024 - Elixir's set-theoretic type system + Haskell streaming
Agenda
18:00: Welcome and setup
Presentation #1: The new Set-Theoretic Type System for Elixir (Rob Ellen)
Presentation #2: Understanding the core of
streaming
, my favourite Haskell streaming library (Jack Kelly)20:00ish: Pack down, head to Criterion pub.
This is our final regular session for 2024. We will have a social event at Bloodhound in December!
Understanding the core of streaming
, my favourite Haskell streaming library
Streaming libraries are as important in Haskell as they are in other languages — they let you process large amounts of data in constant memory. streaming
is my favourite of these, because it has a very elegant core type and doesn't invent a plethora of custom operators. In this talk, I will motivate and build up the core types used by the streaming
library, and show that not only do they enable safe and efficient streaming, they are also surprisingly expressive.
The new Set-Theoretic Type System for Elixir
"A static type system!" is the probably the most popular answer/guess to the questions, "What is Elixir missing?" or "What will Elixir 2.0 have in it?" Since its creation, Elixir has relied on rudimentary compiler checks and static analysis tools inherited from Erlang to provide any confidence before running the program and finding out. However in recent years, a research effort has been undertaken in partnership with Elixir's core team to develop a static type system for the language. The type system is described as Set-Theoretic and is both gradual and being "gradually" added to the language. In this talk we will explore what we know about the theory and practice of this type system. We explore the theory as described by The Design Principles of the Elixir Type System - Castagna, Duboc, and Valim, 2023, https://arxiv.org/abs/2306.06391. We will also look at some examples of the latest iteration of the type system as it has been released in Elixir 1.18