Haskell Weekly


Issue 205 2020-04-02

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.


  • Introducing Halogen Hooks by Thomas Honeyman

    Hooks are a better alternative to higher-order and renderless components, and they offer a more convenient way to write many ordinary Halogen components.

  • The Cabal/Stack Disambiguation Guide by Merijn Verstraaten

    I will hope to eliminate the confusion that many of the askers seem to have about the various different things named “cabal” and how they relate to each other and stack.

  • Eager vs. Lazy Instantiation: Making an Informed Decision by Gert-Jan Bottu

    This discussion serves as a great showcase for how language design works in practice: it is a hard and involved process where not everyone will agree on the same answers.

  • Lazy Streaming With a C API by Vanessa McHale

    Streaming via a C API presents a conundrum in Haskell: on the one hand, the C code is side effecting, on the other, we would like to provide a lazy API.

  • Lucid: Another HTML Option by Monday Morning Haskell

    We’ve already explored how to do this a bit in Reflex FRP and using the Blaze library. This week, we’ll consider one more library, Lucid.

  • Migrating from QuickCheck to Hedgehog: mixed results by Fraser Tweedale

    In this post I will explain the catalyst and the results of the switch including a surprising and (for me) detrimental behavioural difference between QuickCheck and Hedgehog.

  • On Haskell and Onboarding

    The onboarding process demands an academic’s exploration and synthesis. Not everyone has a researcher’s mindset.

  • Overriding Type Class Instances (Part 2) by Cary Robbins

    In most cases, we likely won’t be able to tamper with the source code to inject our override machinery. Furthermore, we’d like to be able to achieve this with as little boilerplate as possible.

  • Repeatable execution in Haskell by Mark Seemann

    This article is part of a series of articles about repeatable execution. The previous article argued that if you’ve logged the impure actions that a system made, you have enough information to reproduce what happened.

  • A Tip for Profiling GHC by Matthew Pickering

    In this post I will describe quite an ergonomic way of profiling any merge request without having to build the branch yourself from source or in any special mode.


  • Interos is Hiring Full Stack Haskell Software Engineers (ad)

    At Interos, we are disrupting the way Fortune 500 companies and government agencies identify and respond to risk within their supply chains. We deliver the data and insights to business leaders that help them identify, visualize and understand the ripple effects that could impact their supply chains, before they happen. Recently funded by Kleiner Perkins and pivoting to an automated solution, Interos is in essence, a start-up SaaS environment.

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

In brief

  • 30 years of Haskell by Joachim Breitner

    Vitaly Bragilevsky, in a mail to the GHC Steering Committee, reminded me that the first version of the Haskell programming language was released exactly 30 years ago.

  • Idris 2 version 0.1.0 Released by Edwin Brady

    This is a complete reimplementation of Idris, written in Idris 1.

  • Monthly Hask Anything (April 2020)

    This is your opportunity to ask any questions you feel don’t deserve their own threads, no matter how small or simple they might be!

Show & tell

Call for participation