Haskell Weekly


Issue 244 2020-12-31

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.


  • Glasgow Haskell Compiler 9.0.1-rc1 now available! by Ben Gamari

    The GHC team is very pleased to announce the availability of the first release candidate of GHC 9.0.1 series.

  • Advent of Code 2020: Haskell Solution Reflections for all 25 Days by Justin Le

    Speaking of Haskell, I usually do a write-up for every day I can get around to about unique insights that solving in Haskell can provide to each different puzzle.

  • Ephemeral Purely Functional Data Structure and Linear Type by Kazuki Okamoto

    This queue has a constraint that you can operate just once for each value because of its computational complexity. The theme of this article is that linear types can save this constraint.

  • (Haskell in Haskell) 3. Parsing by Lúcás Meier

    In this post, we’ll go over creating a parser for our subset of Haskell. This stage of the compiler is responsible for taking the tokens that our lexer produced in the previous part.

  • Haskell type-level functions shenanigans by Antoine Leblanc

    Looking into it, I found several possible implementations, that relied on parts of the language I wasn’t very familiar with. I thought it’d be interesting to go over them, and highlight why each extension is required, step by step.

  • Learn just enough about linear types by Artyom Kazak

    After reading this post, you will be able to answer some immediate questions about them, and explain some of the gotchas — thus becoming the go-to linear types person at your $dayjob (unless you work at Tweag).

  • Monad Transformers and Effects with Backpack by Ollie Charles

    In this post, I want to show how we can use Backpack to give us the performance benefits of explicit transformers, but without having library code commit to any specific stack.

  • StateT vs IORef: a benchmark by Roman Cheplyaka

    Intuitively, IORefs are dedicated heap objects, while a StateT transformer’s state becomes “just” a local variable, so StateT might optimize better.


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

In brief

  • Algebra-Driven Design by Sandy Maguire

    Get it right, get it working, and then get it fast. And have the computer do most of the work for you.

  • Countdown to 2021! by Monday Morning Haskell

    As I always do, I’ll sign off the year with a review of the different concepts we’ve looked at this year, and give a preview of what to expect in 2021.

  • Haskell doesn’t have macros by Chris Done

    I wanted to underscore a specific point about Haskell’s metaprogramming capabilities. It doesn’t have a macro system, the kind that Lispers love.

  • Is it Try.do that is dangerous? by Chris Done

    I wrote the post Try.do for recoverable errors in Haskell and someone has written a nice response post proposing that this pattern is actually dangerous.

  • Learnings From Solving Advent Of Code 2020 In Haskell by Abhinav Sarkar

    After many years of trying unsuccessfully, I finally completed all 25 days of the Advent of Code 2020 in Haskell.

  • New Haskell Foundation to Foster Haskell Adoption, Raises $200,000 USD by Bruno Couriol

    The foundation, which already gathered $200,000 in funding from corporate sponsors, will add a board of directors and an executive director that will set the technical agenda and priorities for the language.

  • Postmortem of outage on 20th December by Cachix

    I recently upgraded to GHC 8.10.3 together with a switch to non-moving GC and bumped to recent Stackage nightly. The bug could be just anywhere in the Haskell software stack, as I haven’t seen this before.

  • Search! by Type Classes

    We’ve added a search page to help you find what you’re looking for on Type Classes.

  • Try.do is dangerous

    This post is a response to Try.do for recoverable errors in Haskell. I’ll describe why I believe it’s a bad idea to do what the post suggests.

  • Working with Dates in IHP and Haskell by Zac Wood

    In the IHP web framework, columns with the Postgres “Date” type are translated into Haskell as the Day type.

Show & tell

  • Parochial by Richard Heycock

    Parochial helps manage local documentation by creating an index of a project’s html, it also builds a hoogle index.

  • Quad CI by Marco Sampellegrini

    Quad CI is a simple, tiny and beginner friendly Continuous Integration system written in Haskell.

  • quote-quot by Andrew Lelechenko

    Generate routines for integer division, employing arithmetic and bitwise operations only, which are 2.5x-3.5x faster than quot.

  • skyrim-alchemy by Timofey Peshin

    I was away from my console for a while and decided to “play” Skyrim by writing a tool to help me discover ingredient effects.

  • sydtest by Tom Sydney Kerckhove

    An advanced modern testing framework for Haskell with good defaults and advanced testing features.

Call for participation