Issue 105

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.

Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.


  • Explaining the recent Hackage downtime

    Roughly two weeks ago, on April 12, we had about a day of Hackage downtime — the most significant downtime Hackage has experienced in years.

  • Asynchronous exception handling in Haskell

    GHC Haskell ups the ante even further, and introduces asynchronous exceptions. These allow for very elegant concurrent code to be written easily, but also greatly increase the surface area of potentially incorrect exception handling.

  • Fishy documentation

    In this post I’m going to go through how to use Haddock to maximize your Haskell documentation. Haddock is ubiquitous when documenting Haskell.

  • Automatically generated directories for individual Tasty tests

    This is a practical trick for creating directories based on test names using the Haskell test framework tasty, as well as accessing the test names inside your tasty tests themselves.

  • Avoid the dilemma of the trailing comma

    The Haskell syntax uses comma-separated lists in various places and does, in contrast to other programming language, not allow a trailing comma. If everything goes on one line you write (foo, bar, baz) and everything is nice.

  • Day 72: On Nixing

    Apart from being a Haskell advocate, Tobias is also a Nix advocate, which seem to go hand in hand, according to my quick survey of Google results mentioning both Haskell and Nix.

  • Deprecating data

    Generic programming should be based on representational equality. We can obtain this by reformulating data in terms of newtype: manually or (tentatively) with compiler support.

  • Dockerizing our Haskell App

    Last week, we explored how to automate the deployment of our Haskell app. Our system had a couple weaknesses though. This week, we’ll solve these problems using Docker images.

  • Parametrized unit tests in Haskell

    Sometimes you’d like to execute the same (unit) test for a number of test cases. The only thing that varies is the input values, and the expected outcome. The actual test code is the same for all test cases.

  • The mysterious incomposability of Decidable

    Applicative, Alternative and Divisible are Haskell classes that each have nice composition properties. There is a fourth class, Decideable, that fills in the remaining corner of a square of properties but I cannot find any nice composition property for it.


  • Software engineer at ITProTV in Gainesville, Florida

    ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.

In brief

Package of the week

This week’s package of the week is JuicyPixels, a library for saving and loading different picture formats.

Call for participation