Haskell Weekly


Issue 303 2022-02-17

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.


  • Analyses are arrows by Luc Tielen

    In today’s post, I explore how we can use Haskell to compose multiple Soufflé Datalog analyses in an elegant and principled way using various Haskell type-classes.

  • Functortown continues by Chris Martin

    I am very pleased to announce the release of lesson 9 of the Applicative series.

  • GHC activities report: December 2021 – January 2022 by Well-Typed

    This is the tenth edition of our GHC activities report, which describes the work on GHC and related projects that we are doing at Well-Typed. The current edition covers roughly the months of December 2021 and January 2022.

  • Haskell Error Messages: Come on! by Jimmy Hartzell

    At some point, we wrote an expression by accident that had a type error in it, and so we got to see how the compiler treated such things. I don’t remember the exact expression — it was deep in context — but the problem was I was trying to add an integer to an list.

  • How To Design A Chat Bot by Solomon Bothwell

    I’m working on a library for designing highly composable protocol agnostic chat bots. The design is based on Mealy machines and heavily leverages Haskell’s profunctor machinery.

  • Type-checking plugins, part III: Writing a type-checking plugin by Sam Derbyshire

    We concentrate on giving a high-level overview of the process. For worked examples and the nitty-gritty details, please refer to my new ghc-tcplugin-api library, which aims to provide a carefully curated and documented interface.

  • ZuriHac 2022 by Jasper Van der Jeugt

    After two years of virtual ZuriHac, we are very excited to bring back the Hackathon as an in-person event at the beautiful campus of OST (new name, same location as 2018/19), right next to lake Zürich. The event will take place Saturday 11 - Monday 13 June.


  • Haskell Developer at MLabs (ad)

    We are one of the leading Haskell consultancies in the fintech, blockchain and AI space, with a passion for Haskell and open source software. We are looking for a remote Haskeller to join our team. If you are excited about Haskell and are up for a new challenge, please apply here or visit our website! For any questions please email jobs@mlabs.city.

  • Haskell Software Engineer at Bitnomial (Chicago,IL,US Remote) (ad)

    Bitnomial is looking for Haskell Software Engineers. Bitnomial is a US based, CFTC licensed and regulated bitcoin derivatives exchange, headquartered in Chicago. Bitnomial develops and operates exchange, clearing, and settlement infrastructure for physically settled bitcoin futures and options.

  • Backend Developer at Holmusk (ad)

    Holmusk is using Haskell to build digital health products. We are looking for remote Haskellers to join our team across Europe for now, but also in the US soon. Are you excited about using Haskell to improve the mental health of millions of people? Do you want to work alongside smart and mission-driven people across 20 countries? Please apply here or visit our website! As a Haskell Developer, you will be working within the Holmusk Product Team so you might be interested to read up on this blog too: https://holmusk.dev. For any questions please email me at adam.cooke@holmusk.com.

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

In brief

  • 2022 Call for Nominations for the Haskell Foundation by Théophile Choutri

    The Board of Directors of the Haskell Foundation is pleased to announce the nomination process for Board seats. As per the Board membership lifecycle rules, and since the current board has 13 members, at most one position may be filled by this call.

  • Con-Text-ualizing Strings by Monday Morning Haskell

    It turns out that this representation has quite a few drawbacks. There are other string representations that are more compact and result in more efficient operations, which is paramount when you are parsing a large amount of data.

  • Episode 9: Sebastian Graf by The Haskell Interlude

    Sebastian Graf is interviewed by Joachim Breitner and Alejandro Serrano. Sebastian is one of the most active contributors to GHC, and tells of this experience, from his very first commit to GHC to his current work on the pattern coverage checker and demand analyzer.

  • Optics vs Lenses, Operationally by Bruno Gavranović

    While optics are more general, it’s understood that they’re equivalent to lenses in the special case of a cartesian monoidal category C. In this blog post I’ll explain how this equivalence is denotational in nature, and the result of erasure of important operational data.

  • Review: Codata in Action by Sandy Maguire

    So anyway, today we’re looking at codata. What’s that? Essentially, lazy records. By virtue of being lazy, Haskell makes the differentiation between data and codata rather hard to spot.

Show & tell

  • Wordle.hs by Jake Scott

    Play Wordle on the command line.

Call for participation