The GHC developers are happy to announce the availability of GHC 9.6.3. Binary distributions, source distributions, and documentation are available on the release page. This release is primarily a bugfix release addressing a few issues found in the 9.6 series. These include: ...
The Haskell ecosystem has accumulated a wealth of developer tools over the years. Some of them, such as Hoogle and HLint, have existed for nearly two decades, while others, such as the Haskell Language Server and Retrie, are much more recent. GHC has changed substantially in that time, and this presents a significant challenge...
Since 2015, FP Complete has been developing Stack and its associated backend infrastructure, and have donated the hardware resources, time, and expertise needed to make the services available to the community. Stack and Stackage have enabled Haskell development workflows that were not possible before, and the careful attention...
In this farewell interview with David Thrane Christiansen, the outgoing Executive Director of the Haskell Foundation, hosts Wouter Swierstra and Matthías Páll Gissurarson use the opportunity to reflect on his tenure as ED, the recent history of the Haskell Foundation, where the HF is going and what consider if you want to...
On the HF Slack instance, a user dropped by with a request: can programs that fail due to missing files be better about reporting to users which file was missing? The user in question is providing feedback about how many programs in Haskell can be improved in one fell swoop, but they’re not really in a position to fix it...
Hi all, I’ve been working for some time on the Eclair compiler (written in Haskell) and I am now at the point where I need to test the LLVM IR my compiler is generating. How would you approach testing this generated code?
In this episode, Andres and Edsko will talk about Edsko's visit to ICFP (the International Conference on Functional Programming), the Haskell Symposium, and HIW (the Haskell Implementors' Workshop) from 4-9 September 2023 in Seattle. We will highlight a few select papers from these events....
Serokell’s team has implemented part 1 of visible forall and improved name resolution and type checking of type patterns. Find out the details in our blog post.
This post demonstrates how to outlaw specific return types from servant APIs. Perhaps we have types that are intended for backend use only, or maybe the types are legal in one API but illegal in another yet the backend code is a monolith. Whatever the reason, we can encode a type-level assertion over a servant API that produces...
It is finally time to take a look at how GHC introduces thunks to implement laziness. We first consider ways that thunking can sometimes be viewed as an optimization, then try to understand the source of unnecessary thunking in most Haskell programs.
A lot of the Rust Haskell interop examples out there are for small, synchronous libraries. They also tend to omit how to actually package the Rust library. We'll take a look at challenges and solutions for how to integrate a Tokio-based Rust library with Haskell.
In this interview with Serokell, Lead Software Developers фе RELEX Solutions, Mats Rauhala and Martin Potier, shared with us their reasons for choosing Haskell for their project and their experience implementing it.
Dear Haskell Community, Since May, 2022, I’ve had the honor and pleasure of serving as the Executive Director of the Haskell Foundation. As many of you know, I’ve had a deep and abiding interest in dependently-typed programming, formal verification, compile-time metaprogramming, and programmer tooling. A rare opportunity...
I gave a talk on monads to some friends yesterday and recorded it for anyone who's interested. They are current and retired programmers, so the talk may suit others in that line of work....
To better understand some counterintuitive evaluation puzzles, we explore the notion of “demand” as it exists in Haskell and discuss how it influences GHC’s choice of evaluation strategy.