This was already featured in the Weekly News a couple of weeks back, but I think maybe it deserves it’s own thread. I’ve tried to explain this approach to some people before, but I think this article does a much better job than I have....
With UndecidableInstances, the answer is a resounding yes, with a fairly direct implementation. Without it, I keep getting stuck, though I’m not as comfortable with type families as some....
In this episode Niki Vazou and Wouter Swierstra chat with Lindsey Kuper, Assistant Professor at University of California, Santa Cruz. They discuss what to do when your data center gets hit by a tornado, life in academia versus life in industry, and what is choreographic programming.
The GHC developers are very pleased to announce the availability of the release candidate of GHC 9.8.1. Binary distributions, source distributions, and documentation are available at downloads.haskell.org. GHC 9.8 will bring a number of new features and improvements ...
Binaries for this release are available at Index of /~hls/haskell-language-server-2.3.0.0/. These binaries can be installed using GHCup or the Haskell VSCode extension. All of these tarballs have associated GPG signatures. The signature should be from Zubin Duggal (key ID 588764FBE22D19C4). The prebuilt binaries in this release...
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.