







Death to IO monads: FP has better tools that point the way towards the future.
Integrating functional and imperative programming | Proceedings of the 1986 ACM conference on LISP and functional programming
We present a new model, based on monads, for performing input/output in a non-strict, purely functional language. It is composable, extensible, efficient, requires no extensions to the type system, and extends smoothly to incorporate mixed-language ...
What I did with Monad the last 2 weeks: Oak, a web stack, and a path toward univalence - Monad dev blog
October 31, 2026 The last two weeks were the busiest stretch this repository has seen. Between October 16 and October 30 the tree took 370 commits — roughly 185...

Graphics and FPL: Porting a Haskell graphics framework to Rust (luminance)
I wanted to write that new article to discuss about something important I’ve been doing for several weeks. It’s actually been a month that ...
Ditto - Introducing Safer FFI
Introducing safer_ffi, a Rust framework that allows you to write foreign function interfaces (FFI) without polluting your Rust code with `unsafe` while improving readability.

Runtime Support for Multicore Haskell: a Retrospective
Runtime Support for Multicore Haskell (ICFP’09) was awarded the SIGPLAN ten-year most-influential paper award in 2019. In this blog post we reflect on the journey that led to the paper, and what ha…

Ladybird adopts Rust, with help from AI - Ladybird
We're adopting Rust as our C++ successor language, and using AI agents to accelerate the transition.

Gemma 4: Byte for byte, the most capable open models
Gemma 4: our most intelligent open models to date, purpose-built for advanced reasoning and agentic workflows.

The mythical matched modules | Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Certified compilers are complex software systems. Like other large systems, they demand modular, extensible designs. While there has been progress in extensible metatheory mechanization, scaling extensibility and reuse to meet the demands of full ...

Write You a Haskell ( Stephen Diehl )
Help Wanted: Research Questions in Rust - Aaron Turon - OPLSS 2018
Why Futhark?
A high-performance and high-level purely functional data-parallel array programming language that can execute on the GPU and CPU.
Boomerang | Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bidirectional programming languages are a practical approach to the view update problem. Programs in these languages, called lenses, define both a view and an update policy - i.e., every program can be read as a function mapping sources to views as well ...

Abstracting Definitional Interpreters
In this functional pearl, we examine the use of definitional interpreters as a basis for abstract interpretation of higher-order programming languages. As it turns out, definitional interpreters, especially those written in monadic style, can provide a nice basis for a wide variety of collecting semantics, abstract interpretations, symbolic executions, and their intermixings. But the real insight of this story is a replaying of an insight from Reynold's landmark paper, Definitional Interpreters for Higher-Order Programming Languages, in which he observes definitional interpreters enable the defined-language to inherit properties of the defining-language. We show the same holds true for definitional abstract interpreters. Remarkably, we observe that abstract definitional interpreters can inherit the so-called "pushdown control flow" property, wherein function calls and returns are precisely matched in the abstract semantics, simply by virtue of the function call mechanism of the defining-language. The first approaches to achieve this property for higher-order languages appeared within the last ten years, and have since been the subject of many papers. These approaches start from a state-machine semantics and uniformly involve significant technical engineering to recover the precision of pushdown control flow. In contrast, starting from a definitional interpreter, the pushdown control flow property is inherent in the meta-language and requires no further technical mechanism to achieve.
