Haskell Weekly

Newsletter

Issue 485 2025-08-14

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.

Featured

  • ATC Monthly Status Update - August 7th 2025 by lazyLambda

    For the past 9 months, I’ve been working on a project to grow the Haskell userbase through mentorship and hands-on learning. We’ve learned a lot about teaching Haskell effectively and building an approachable yet robust way to get started with Haskell I’ve started sharing the lessons we have learned from the experience in monthly blog posts for those who care about growing the language.

  • Episode 68 – Michael Snoyman by The Haskell Interlude

    In this episode, we’re joined by Michael Snoyman, author of Yesod, Conduit, Stackage and many other popular Haskell libraries. We discuss newcomer friendliness, being a Rustacean vs a Haskellasaur, how STM is Haskell’s best feature and how laziness can be a vice.

  • On applying Type-Driven Development with Domain-Driven Design by Niels Bergsma

    Lately I’ve been thinking about the principle “Make illegal states unrepresentable” (popularised by Scott Wlaschin) and how it applies to Domain-Driven design. It’s the sort of mantra that sounds obvious on paper and mysteriously evaporates the moment you open your editor. What follows is the small, repeatable toolkit I reach for. Nothing mystical, just habits that turn “we’ll remember that” into “the compiler remembers that, and refuses to forget”.

  • Save memory and CPU with an interning cache by Chris Penner

    This post will introduce a simple caching strategy, with a small twist, which depending on your app may help you not only improve performance, but might also drastically reduce the memory residency of your program.

  • Type inference for plain data by Gabriella Gonzalez

    The context behind this post is that my partner asked me how to implement type inference for plain data structures (e.g. JSON or YAML) which was awfully convenient because this is something I’ve done a couple of times already and there is a pretty elegant trick for this I wanted to share.

  • Type-machine by Arthur Jamet

    Using Template Haskell to derive the structure of records and simulate structural subtyping.

  • Using traversals to batch database queries by Chris Penner

    This article is about a code-transformation technique I used to get 100x-300x performance improvements on a particularly slow bit of code which was loading Unison code from Postgres in Unison Share. I haven’t seen it documented anywhere else, so wanted to share the trick!

  • Well-Typed at ZuriHac 2025 by Matthew Pickering

    Well-Typed was strongly represented at this year’s ZuriHac, with our team of Haskell experts giving eight talks across ZuriHac itself and the Haskell Ecosystem and Implementors’ Workshops. We’re pleased to report that the recordings are now available.

Jobs

  • Haskell Developer (AU / NZ) at Bellroy

    We’re extending the capabilities of our bespoke e-commerce platform, integrating with digital marketplaces around the world and supporting the release of exciting new carry goods. As we scale, we’re seeking a Haskell developer who can help us build an elegant platform to support our growth. Read more about our team, processes, open source contributions and philosophy at our technical blog

In brief

Show & tell

  • Embedding Interactive Models in Hackage Docs by Joe Warren

    It was recently pointed out to me that their is nothing stopping you from making arbitrary changes to Haddock documentation before uploading it to Hackage. Long story short, the documentation for my Haskell CAD framework, Waterfall-CAD, now contains embedded 3d models generated from the example code.

  • In-Order Traversal in Haskell and Rust by Monday Morning Haskell

    Last time around, we started exploring binary trees. We began with a simple problem (inverting a tree), but encountered some of the difficulties implementing a recursive data structure in Rust. Today we’ll do a slightly harder problem (LeetCode rates as “Medium” instead of “Easy”). This problem is also specifically working with a binary search tree instead of a simple binary tree. With a search tree, we have the property that the “values” on each node are orderable, and all the values to the “left” of any given node are no greater than that node’s value, and the values to the “right” are not smaller.

  • Linear regression w/ hasktorch by Michael Chavinda

    A minimal example of feature engineering and model training.

  • Welcome to Я bootcamp by Murat Kasimov

    Due to recently shown interest on Reddit I’m running a bootcamp for anyone who wants to get some experience of thinking in commutative diagrams and grasp the meaning behind operators.

Call for participation