Newsletter
Issue 550 2026-11-12
Subscribe now! We'll never send you spam. You can also follow our feed. Read more issues in the archives.
Welcome to another issue of Haskell Weekly! Haskell is a safe, purely functional programming language with a fast, concurrent runtime. This is a weekly summary of what’s going on in its community.
Featured
-
From Instantaneous Events to Musical Spans by Sandy Maguire
We’ve been thinking a lot about musical structures over these last few posts. Today we’re going to look into some rhythmic concerns, and in particular, figure out how to turn a discrete signal of instantaneous events into something that actually looks like music.
-
Fun with OverloadedRecordDot: Logging by Brandon Chinn
A short snippet for overloaded record dots with logging, including a fun technique writing a
HasFieldinstance on monadic values. -
GHC 9.12.5-rc4 is now available by MangoIV
The GHC developers are pleased to announce the availability of the fourth release candidate for GHC 9.12.5, ghc-9.12.5-rc4.
-
Life after Haskell, HKT flattening (examples in Kotlin) by Robert Peszek
I will complain about booby-traps in popular mainstream languages. If you are tired of such complaints, go directly to Setter the HKT flattening case study where I consider “flattening” HKTs. I use flattening in an intuitive sense.
f abecomesfa(a “big” type;fais a “flattened”f abecause it uses fewer type variables) andasticks around (a “small” type).(a -> b) -> f a -> f bbecomes a plain(a -> b) -> fa -> fb. This allows me to start using a less polymorphic but still usefulSetterinstead of aFunctor. Similarly, theTraversaloptic ends up replaced with aSetterthat uses implicit IO. -
What is static analysis, really? by Daniele Filaretti
Many developers have come across the term “static analysis” and related ones such as “soundness” and “program semantics”, but what they mean and how they fit together isn’t always clear (or at least it wasn’t to me). This post introduces the basic terminology and the intuition behind it. We start with what static analysis can offer and how it addresses the limitations of testing and code auditing. We then explore its limits, why undecidability makes approximation necessary, and the tradeoffs involved in designing useful analyses, explaining concepts such as soundness, completeness and precision along the way.
In brief
-
base32-1.0 by emilypii
The last of the bunch is up: simd support, faster api, lots of good happy changes that homogenize
base32with thebase16andbase64apis and gets its performance on par with the best out there. -
Brillo 3.0.0 is released by Execute
Brillo hides the pain of drawing simple vector graphics behind a nice data type and a few display functions. Brillo uses GLFW and OpenGL under the hood, but you won’t need to worry about any of that.
-
Haskell Ecosystem Packages in partnership with MLabs by Laurent P. René de Cotret
MLabs is partnering with the Haskell Foundation to offer ecosystem packages, as part of our ecosystem partnership program.
-
Haskell Foundation DevOps Monthly Log, October 2026 by Bryan Richter
There was a lot of behind-the-scenes work in October, and a lot of security disclosures that required action.
-
mariadb-haskell 0.1.0.0 — a MariaDB-focused driver, now on Hackage (Alpha) by Anton Antic
The project is a fork of mysql-haskell. The goal is to provide access to MariaDB’s native capabilities, with careful handling of streaming, connection state, cancellation and replication. Thanks to Winterland and the upstream contributors whose work made this possible.
-
Mirror for fp complete blogposts by Jappie
I made a mirror of the fp complete blogposts, many of these are very good and there are over 80 of them! Ever since the fpcomplete site went down they’ve not been easily accessible, (you had to use wayback machine, which I still link to). I also poured it in a more readable layout because that fpblock theme wasn’t very readable.
-
wasmedge-hs: Type-safe Haskell bindings for WasmEdge runtime (v0.18.1) by tushar
I just released wasmedge-hs on Hackage - a modern, type-safe FFI binding for the WasmEdge WebAssembly runtime (supporting WasmEdge 0.18.1).
Show & tell
- Spin up a new worktree FAST, with cabal-buck2 by Simon Marlow
Something we often want to do is create a new worktree to work on a bug, PR, or small feature, especially if you’re forking off tasks for an AI to work on. Creating the worktree is easy, but to build and test the changes, you’re starting from a cold build. I want to run through quickly how to set things up so that you can spin up a new worktree and use
cabal-buck2to pull build artifacts from a cache, so the build in the fresh worktree is ready instantly.
Call for participation
-
Fully-funded PhD studentships at the University of Nottingham, UK by Graham Hutton
Interested in a PhD studentship in the Functional Programming Lab in Nottingham? Fully-funded studentships are currently being advertised; deadline 6 January 2027.