Newsletter
Issue 437 2024-09-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
-
Behaviour changes on flag day by Tom Ellis
At work (Groq) we recently upgraded the version of GHC that we use from 8.10 to 9.6, along with many of the Haskell packages we depend on. I wrote about the changes to our code that this required in “Upgrading from GHC 8.10 to GHC 9.6 – an experience report”. That article touches on the risks associated with being forced to make many changes at once: if a problem occurs it can be hard to diagnose and it can be hard to fix. After that article was written I discovered that such a problem, albeit a benign one, had occurred. The present article explains the situation.
-
Big Datatype: why code tools like to be written with fancy types by Richard Marmorstein
Languages with ML-style type systems like Haskell and OCaml1 seem to be particularly successful in the “code tools” genre of software project. This is my subjective impression, at least. Here’s a few I can think of off the top of my head.
-
Decidable equality for indexed data types by Brent Yorgey
Recently, as part of a larger project, I wanted to define decidable equality for an indexed data type in Agda. I struggled quite a bit to figure out the right way to encode it to make Agda happy, and wasn’t able to find much help online, so I’m recording the results here.
-
Haskell For Dilettantes, Part 7 - Polymorphism and Recursion by Tea Leaves
In this episode we do some prep work to get ready for Homework 3 of our Sokoban class, and talk a bit about how polymorphism and recursion interact. Mistakes are made.
-
How to shoot yourself in the foot with lenses and state by Andreas Abel
The definition of van Laarhofen lenses
Functor f => (i -> f i) -> o -> f o
seems to ask for effectful updates, as it is the most direct way to use them. However, following its Siren call can have devastating consequences such as state loss that is hard to discover. -
ICFP’24 Haskell videos by ACM SIGPLAN
Day 2: https://www.youtube.com/watch?v=uMurx1a6Zck
-
What exactly is the point of recursion schemes by u/lucid00000
Personally I don’t understand what the aversion is to explicit recursion when the algorithm you’re writing calls for it. For other complicated ideas born out of Haskell like lenses I can immediately see the utility that outweighs any added complexity. Am I missing something here?
-
Why Haskell? by Gideon Farrell
I think that the things that make Haskell great (meaning both more productive and more fun) can be grouped as follows: the things that stop you making mistakes; the things that make you more productive; and the things that help you reason better about your programmes.
Jobs
Trying to hire a Haskell developer? You should advertise with us!
In brief
-
Unison Forall 2024 - virtual conference Sept 20th (ad)
Unison Forall is a full day of talks dedicated to the Unison programming language and ecosystem. Whether you’re interested in web development or distributed systems, or if you’re just curious about the future of programming languages, this conference is a chance to explore the friendly and powerful world of Unison: a statically typed, functional language designed from the ground up to simplify modern software development.
-
heftia-effects: higher-order effects done right by u/ymdfield
This library aims to provide users with predictable behavior when working with higher-order effects. It offers consistent continuation-based semantics similar to those found in the eff library.
Show & tell
- R-tree-1: spatial trees by Oleksii Divak
Currently only two-dimensional floating-point trees are provided. Three-dimensional counterparts could be added, but I personally don’t need them and half the work would be writing a proper visualizer.