Haskell Weekly

Newsletter

Issue 452 2024-12-26

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

  • Episode 60 – Tom Ellis by The Haskell Interlude

    Tom Ellis works at Groq, using Haskell to compile AI models to specialized hardware. In this episode, we talk about stability of both GHC and Haskell libraries, effects, and strictness, and the premise of functional programming: make invalid states and invalid laziness unrepresentable!

  • Generalized Dijkstra in Haskell by Lucas Escot

    This years’ Advent of Code has loads of 2D grids, and makes you traverse them all to find paths of various kinds. At some point I had to implement Dijkstra’s algorithm, in Haskell. In trying to make my implementation reusable for the following days, I realized that Dijkstra’s algorithm is actually way more general than I remembered (or was taught)! In short, weights don’t have to be real-valued!

  • How to collect performance statistics with Cabal by Hécate

    The Cabal Manual now has a guide on how to collect performance statistics of Haskell applications. This guide was very generously contributed by Malte Neuss. It describes the various options you can set in your cabal.project file in order to get a time or space profile of your application.

  • Indexing code at scale with Glean by Simon Marlow, Pepe Iborra

    In August 2021 we open-sourced our code indexing system Glean. Glean collects information about source code and provides it to developer tools through an efficient and flexible query language. We use Glean widely within Meta to power a range of developer tools including code browsing, code search, and documentation generation.

Jobs

  • Remote Haskell position (but must be in EU/EEA) at Scrive by /u/tageborg

    We have several backend services written in Haskell (see full stack below). Backend engineers are part of cross-functional squads organized around the part of the product they work on. Depending on the squad the work may sometimes involve contributing also to parts of the codebase written in React.js, Elm or Kotlin. Python is used for test automation. Our code is pragmatic and uses language features that solve business needs. We don’t have rules on what can and cannot be used, as long as it satisfies a practical need.

In brief

Show & tell

  • Run RFC 9535 JSONPath queries on Data.Aeson by Taimoor Zaeem

    aeson-jsonpath is designed to be for haskell what serde_json_path is in Rust. It also gives you a nice interface to run JSONPath queries (one function call that parses and runs the query).

Call for participation