Issue 153

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.


  • GHC Infrastructure Update by Ben Gamari

    Since November we have been quietly working behind the scenes to make this new infrastructure a reality; this has been a massive project and however I’m happy to say we are now emerging on the other side and we are very happy with the result.

  • Extending the Persistent QuasiQuoter by Matt Parsons

    The QuasiQuoter does a ton of stuff for you. In this post, we’re going to learn how to make it work for you!

  • GHC, Alpine, Stack, and Docker by Joe Kachmar

    This repository is a small demonstration of the steps required to build an Alpine Linux Docker image with all the tools necessary to compile Haskell programs linked against musl libc.

  • Haskell coreutils - cat by Austin

    I’ve implemented a couple Unix core utilities in Haskell, and want to start a series of posts going through the details - starting with simple programs like cat.

  • Hierarchies In a Hakyll Blog by Artem Chernyak

    Hakyll didn’t support this out of the box, and I didn’t find examples of anyone using similar layouts. So, I created my own approach which I am now sharing.

  • How to use Foreign Function Interface with Stack: Part I by Samuel Barr

    I had previously written this functionality in C for a school project. I had heard of Haskell’s function interface before, and figured this would be a good opportunity to learn it.

  • Idempotent Applicatives, Parametricity, and a Puzzle by Daniel Mlot

    Some applicative functors are idempotent, in the sense that repeating an effect is the same as having it just once. An example and a counterexample are Maybe and IO, respectively.

  • Nanosmos: Writing a simple text-editor with brick by Tom Sydney Kerckhove

    In this post we will write a simple purely functional text editor using brick, building on the previous single-line text editor: picosmos.

  • Parsing JSON with more context by Benjamin Esham

    Sometimes a library wants you to produce a value of type t, but you’d like to have a value of type e available when you do that and the API doesn’t offer a way to inject an e in the right place.

  • The Compose Newtype and its Applicative Instance by Florian Beeres

    This post will give you a quick overview of the Compose data type and then explain how the applicative instance for that type works.


In brief

Package of the week

This week’s package of the week is slist, a package that implements the Slist data structure which stores the size of the list along with the list itself.

Call for participation


North America




South America