Four Years of Embedded Haskell in Critical Real-Time Systems: Lessons and Insights
Haskell is not the first language many would pick for embedded systems work, but since 2021 we have used it as the primary language for real-time embedded systems that coordinate concurrent workloads across machines, sensors, FPGAs, CUDA devices, and foreign-language components. After years in production, we look back on where Haskell’s properties proved most useful, in a setting defined by fast iteration, strict requirements for correctness and reliability, limited memory, and heterogeneous hardware. We report on that experience, showing how familiar idioms like STM channels and locks, resource-scoping patterns, streaming combinators, and incremental serialization served as effective mechanisms for concurrency, scheduling, and resource control. On the experimental side, we discuss trials with dependent types, linear types, and JIT-style techniques—showing where they enforced correctness (for example, dimensional checks in data pipelines) and where they added complexity without real benefit. From this we draw broad lessons: Simple Haskell scales, types enforce invariants, abstractions obscure latency, and advanced type features only sometimes pay off. Immutability, strong typing, laziness, resource scoping, and type-level reasoning supported rapid iteration and sustained the system across hardware refreshes and OS upgrades. Attendees are offered practical patterns and a set of heuristics for building reliable systems, as well as a broader view of how functional programming can thrive in resource-constrained, high-reliability environments, and how Haskell can be a viable choice for embedded projects.
Exploring functional programming, type-driven development, and real-world Haskell at scale and in embedded systems.
Fri 17 OctDisplayed time zone: Perth change
| 10:30 - 12:15 | |||
| 10:3030m Research paper | Rebound: Efficient, expressive, and well-scoped binding HaskellLink to publication DOI Pre-print | ||
| 11:0030m Research paper | Total Type Classes Haskell | ||
| 11:3020m Talk | Four Years of Embedded Haskell in Critical Real-Time Systems: Lessons and Insights Haskell | ||
| 11:5020m Talk | Haskell equations, thirty-eight years later Haskell Philip Wadler IOG; University of Edinburgh | ||
