Newsletter
Issue 442 2024-10-17
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
-
Calling All Devs! Help shape the future of development by taking the Developer Nation survey. We’ll donate to charity on your behalf and you could win a Samsung Galaxy Watch 7, a Portable Projector, Raspberry Pi 5s, and many more.
-
A Dictionary of Single-Letter Variable Names by Jack Kelly
Haskell’s expressive type system means that type signatures can carry a lot of information. Haskell’s polymorphism means that you sometime write a function that works across an enormous range of types, and are often left wondering “what do I actually call my variables?”. It is often the case that there’s nothing to say beyond “this variable is a Functor”, or “this variable is a monadic action”, and so a single-letter variable name is appropriate. An unofficial and largely undocumented convention has emerged around these variable names, and so I wanted to write them all down in one place.
-
Cheap guitars and drums in Haskell by Alp Mestanogullari
This post demonstrates an extremely simple but foundational method in digital audio synthesis born in the US in the late 1970s, the Karplus-Strong algorithm.
-
Deploying a Single-Binary Haskell Web App by kqr
Although Haskell is a compiled language and the default build step results in a single binary for a Yesod site, it is not a deployable single binary, because it may still depend on libraries and resources on the machine it was built. To get to a point where deployment consists only of copying over a binary and restarting a process, there were a few more steps needed beyond the default.
-
GHC 9.12.1-alpha1 is now available by Zubin Duggal
The GHC developers are very pleased to announce the availability of the first alpha release of GHC 9.12.1. Binary distributions, source distributions, and documentation are available at downloads.haskell.org.
-
MonadRandom: major or minor version bump? by Brent Yorgey
tl;dr: a fix to the
MonadRandom
package may causefromListMay
and related functions to extremely rarely output different results than they used to. This could only possibly affect anyone who is using fixed seed(s) to generate random values and is depending on the specific values being produced, e.g. a unit test where you use a specific seed and test that you get a specific result. Do you think this should be a major or minor version bump? -
Serokell’s Work on GHC: Dependent Types, Part 4 by Vladislav Zavialov, Andrey Borzenkov
The GHC team at Serokell continues its work towards dependent types in Haskell. Our ultimate goal is that Haskell becomes a language where the use of advanced type system features is not just possible but practical. In this report, Serokell’s GHC team members Vladislav Zavialov and Andrei Borzenkov describe their recent contributions.
-
The Haskell Unfolder Episode 34: you already understand monads by Andres Löh, Edsko de Vries
Function composition is the idea that we can take two functions and create a new function, which applies the two functions one after the other. When viewed from the right angle, monads generalize this idea from functions to programs: construct new programs by running other programs one after the other. In this episode we make this simple idea precise. We will also see what the monad laws look like in this setting, and we will discuss an example of what goes wrong when the monad laws are broken.
-
Water Sort in Haskell by Nicolas Audinet de Pieuchon
Water Sort is a puzzle game where you have to sort coloured water into bottles. If you haven’t tried it yet, there are many clones of it online or on your phone. I started playing the game a while ago and, after getting a little addicted to it, I decided to implement it in Haskell for fun (and to immunise myself against it).
Jobs
Trying to hire a Haskell developer? You should advertise with us!
In brief
-
A new kind of Continuation-like Monad? by Koji Miyazato
Recently (I think) I found the following Monad. Is this known somewhere? Is there any usage of it for programming?
-
ollama-haskell: Haskell bindings for Ollama by Tushar Adhatrao
This library allows you to interact with Ollama, a tool that lets you run large language models (LLMs) locally, from within your Haskell projects.
Show & tell
-
heftia-effects: higher-order algebraic effects done right by Ryo
There are countless effect system libraries in Haskell, so to be honest, I was unsure whether to announce this library. However, after several updates, I believe that Heftia v0.4 now offers value comparable to other major effect system libraries. The current version is no longer experimental and aims to provide a practical effect system.
-
Munihac WASM experiment: convert Haskell expressions to pointfree in your browser by Sergey
The aim was to port the pointfree command-line utility to WASM running inside the browser. Perhaps you might find it useful.