Haskell Weekly


Issue 91 2018-01-25

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.

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


  • Domain modeling with Haskell: Generalizing with Foldable and Traversable

    This is the second episode in the short series on Domain Modelling with Haskell. In this episode, we will generalize our domain model from the last episode, providing more fine-grained reporting, with less code.

  • A Haskell beginner’s experience with Yesod

    I am a Ruby on Rails developer with 2 years experience with frontend and backend development. This is my experience after using Yesod for 3 months.

  • The nesting instinct

    Now what we need to do is compose these somehow so that all of them are applied to the same input string and a failure at any juncture gives us an overall failure.

  • Haskell functions as functors, applicatives and monads

    This post explores how functions in Haskell can be seen as instances of the Functor, Applicative and Monad type classes, with some reflection on the practical uses of this technique.

  • How to prove a compiler correct

    The topic of how exactly one goes about proving a compiler correct came up, and I realized that I couldn’t think of a high-level (but concrete) overview of what that might look like.

  • Off the beaten track: Explaining type errors

    Last week I gave a talk at Off the Beaten Track 2018 about something that Richard Eisenberg, Harley Eades and I have been thinking about recently: namely, how to generate good interactive error explanations for programmers, especially for type errors.

  • LambdaCase in the wild

    Of all the many, many Haskell language extensions supported by GHC, LambdaCase is one of my favorites. It has essentially no downside, does not conflict with any existing code, and introduces a single, simple, useful new construct to the language.

  • Recursion schemes part 4½: Better living through base functors

    Today I’m going to talk about the notion of a “base functor”, and how the popular recursion-schemes library uses base functors to make recursion schemes more elegant and ergonomic in practice.

  • Hash based package downloads: Part 1 of 2

    Suppose you’re working on a highly regulated piece of software. For example, something on a defense contract, or a medical device, or the space shuttle. One goal that most regulators will have is that we can fully determine how the software was built at any point in time.

  • SLURP: A single liberal unified registry of Haskell packages

    We have emerged with SLURP, a proposal that could go a long way towards supporting the upsides of a diverse ecosystem, without the sad downsides of forking into mutually-exclusive sub-communities.


  • Tocoman seeking software engineers in Helsinki

    Hey all! We’re looking for software engineers to (re)build our key products from scratch with pure functional languages. We haven’t locked in any languages yet but most probably we’ll choose Haskell, PureScript and/or Elm.

In brief

Package of the week

This week’s package of the week is brick-skylighting, a library for showing syntax highlighted text in Brick UIs.

Call for participation