Haskell Weekly


Issue 281 2021-09-16

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.


  • Announcing Evoke, a GHC plugin for deriving type class instances quickly by Taylor Fausak

    I’m excited to announce Evoke, a GHC plugin that automatically derives type class instances without using generics or Template Haskell.

  • Deferred Derivation by Matt Parsons

    Freeing a module from Template Haskell speeds up our build tremendously - not because Template Haskell is slow (it’s very fast) but because compiling at all is slow. The best way to speed something up is to spend 0 time doing it — don’t do it at all!

  • GHC rewrite rules by Jonathan Dowland

    The Glasgow Haskell Compiler (GHC) has support for user-supplied rewrite rules, which applied during one of the compiler optimisation stages. I spent some time today looking at these more closely.

  • Haskell eXchange 2021

    Our Call for Papers is currently open and we want to hear your proposals! (Especially if you’re new to Haskell or a first-time speaker!)

  • Haskell series part 4 by Pierre Guillemot

    This is the fourth article of a series on the functional language Haskell for beginners. In this article we are going to cover tuples and pattern matching.

  • JSON Vulnerability in Haskell’s Aeson library by Tom Sydney Kerckhove

    This blogpost describes a DoS vulnerability in Haskell’s aeson package. We have followed appropriate procedure for responsible disclosure but the problem was not fixed, so now we are releasing this to the public in the hope that it may still be fixed after all.

  • Optics are monoids by Gabriella Gonzalez

    This post documents my favorite lens trick of all time. Also, this trick works for any optics package based on van Laarhoven lenses, like lens-family-core or microlens.

  • Reader for Free by Patrick Brisbin

    This may be obvious or well-known to some, but I discovered the other day that you can make a MonadReader env instance for any MonadState env m trivially. This makes total sense conceptually, since State is just Reader with the extra ability to modify.

  • Reflecting on the Shake Build System by Neil Mitchell

    As a medium-sized build system, Shake has some good bits and some bad bits.

  • What is an appropriate type for smart contracts? by Ari Fordsham

    Before I answer the main question, I’m going to try to define a bit more precisely what it would mean to write code in Haskell or Idris and compile it to run on an Ethereum-like blockchain.


  • Senior Haskell developer (ad)

    Do you want to put real climate science in the hands of the public? We are looking for more team members who wants to join us as a senior haskell developer. Let’s change the world, together!

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

In brief

  • Cayley Representation of… Monads? by Konrad Kleczkowski

    The moral of this story is that sometimes operation of “original” monoid can be not effective enough, so we can switch to the Cayley representation that is more preformant.

  • Competitive programming in Haskell: Kadane’s algorithm by Brent Yorgey

    We are presented with a linear sequence of cells, each colored either red or blue, and we are supposed to find the (contiguous) segment of cells with the maximal absolute difference between the number of red and blue.

  • Core Libraries Committee Elections by Emily Pillmore

    Dear Haskell Community, The Core Libraries Committee is seeking new members!

  • Effect is a phantom by Xy Daylily

    All effect systems introduce an unavoidable heavy performance penalty, even so with mtl if you aren’t careful enough about specialization. But here, hot take: you probably don’t need an effect system at all.

  • Evoking Instances by Haskell Weekly Podcast

    Taylor Fausak talks with Cameron Gera about Evoke, Taylor’s latest GHC plugin for deriving instances without generics or Template Haskell.

  • A Functional Explanation: A Different Point of View on Reduce and Fold by Evžen Wybitul

    From the three staple higher-order functions — map, filter, and reducereduce is the most powerful, but often also the most misunderstood. Let’s untangle the mystery in a way that’s understandable by Javascript and Haskell programmers alike.

  • Haskell Implementors’ Workshop 2021 by Well-Typed

    We enjoyed taking part in the Haskell Implementors’ Workshop (HIW 2021) this year, as part of ICFP 2021. Many thanks to the program chair, Ningning Xie, and the other organisers!

  • Haskellings Demo Video! by Monday Morning Haskell

    If you’ve been following my Twitch stream, you know I’ve been continuing to work quite a bit on the Haskellings automated tutorial. This week I’m releasing a short YouTube video demonstrating how to get started with this program and use it!

  • Leibniz coercion by Oleg Grenrus

    Recently Ryan Scott wrote an article about Leibniz (and Martin-Löf) equality. Interestingly we can do the same thing for coercions (which are representational equalities).

Show & tell

Call for participation