Haskell Weekly


Issue 257 2021-04-01

Subscribe now! We'll never send you spam. You can also follow us on Twitter or with 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.


  • Combining folds using semigroups

    In today’s post, I will show how to combine many recursion-scheme folds using semigroups.

  • Designing Command Line Interfaces in Haskell by Stephan Schiffels

    As I hope to be able to convince you in this post, a strict and expressive typing system like in Haskell is a huge help with that.

  • Haskell base proposal, part 2: unifying vector-like types by Michael Snoyman

    Two weeks back, I wrote a blog post with a proposal for unification of vector-like types in bytestring, text, and vector. At this point, I wanted to summarize what’s come up, and propose some concrete next steps.

  • Haskell’s Dangerous Functions by Tom Sydney Kerckhove

    Dangerous could mean either of these: Partial: can throw exceptions in pure code, Unsafe: can cause segfaults, Has unexpected performance characteristics, Doesn’t do what you want, Doesn’t do what you think it does.

  • Improvements to memory usage in GHC 9.2 by Matthew Pickering

    In GHC 9.2 I have made two improvements which should make the memory usage reported by long-running applications more closely line up with the amount of memory they need.

  • Incubating the Haskell Foundation by Tweag

    What we thought might be like rolling a boulder uphill turned out to be more like kicking a stone and starting a rockslide. It seems the Haskell Foundation is an idea whose time had come.

  • An introduction to typeclass metaprogramming by Alexis King

    This blog post attempts to remedy that by providing an overview of the foundational concepts behind typeclass metaprogramming. It does not attempt to be a complete guide to type-level programming in Haskell.


Trying to hire a Haskell developer? You should advertise with us!

In brief

  • Async Exceptions by Haskell Weekly Podcast

    Special guest Cody Goodman walks us through an interesting PostgreSQL bug. Handling async exceptions properly is trickier than you might expect!

  • Continual checking by Type Classes

    The type checker can provide rapid feedback as you code. We recommend using ghcid.

  • Linear types AMA by Compositional

    Three core developers from the Haskell linear types team are on this show: Arnaud Spiwack, Richard Eisenberg and Krzysztof Gogolewski. They have conceived, reviewed and implemented the Haskell linear types extension that is shipped with the latest compiler version.

  • Named things in Haskell by Alexandre Moine

    For my GSoC project, I have to deal with named things, and I tried to generalized the traditional (String,a) object and I came with an interesting Named a data.

  • Purebred plugin system: implementation by Fraser Tweedale

    I previously wrote about a prototype plugin system for Purebred. In this post I discuss some improvements to the design, and report on the implementation progress.

  • Simplifying Haskell development and deployment with Nix and Docker

    I’m documenting my current setup, because I think it’s a good setup, and thanks to the promise of reproducibility from Nix, should be an easy to replicate setup.

Show & tell

  • linear-logic by Edward Kmett

    This package encodes a version of intuitionistic linear logic on top of linear Haskell, using a variation of the technique described by Michael Shulman in Linear Logic for Constructive Mathematics.

  • switch by Michael Szvetits

    switch allows your application to detect controllers via Bluetooth, connect to them, read input (e.g., buttons, sensors) from them and sending commands (e.g., rumble) to them.

Call for participation