Haskell Weekly


Issue 274 2021-07-29

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.


  • Static analysis using Haskell and Datalog by Luc Tielen

    In today’s post, I will give a step-by-step tutorial how you can write sophisticated analyses in Soufflé Datalog controlled by Haskell using the souffle-haskell library.

  • Bridging a typed and an untyped world by Christoph Hermann

    Most recently: we were trying to bridge the gap between Haskell and Redis. Here we’ll discuss two iterations of our Redis library for Haskell, nri-redis.

  • Composable Data Validation with Haskell by Ben Levy & Christian Charukiewicz

    In order to meet the above requirements, we decided to write a small embedded domain-specific language (eDSL) to enable writing declarative validation rules. This article will show a simplified version of the actual language being used in production.

  • Haskell - The Most Gentle Introduction Ever by Mateusz Podlasin

    If you feel fairly comfortable in a language like JavaScript, Python, Java, C/C++, or anything similar, you are more than capable of going through this tutorial. You can rest assured that everything will be explained slowly and carefully.

  • IDE support when working on GHC by Ben Gamari

    Here are some notes for how I configure Neovim, haskell-language-server, and clangd for an IDE-like experience when working on GHC.

  • Ode to a Streaming ByteString by Patrick Thomson

    Or: Lazy I/O without Shooting Yourself in the Foot

  • Strictness of foldr' from containers by Marcin Szamotulski

    This blog post will present Haskell’s evaluation order based on an interesting issue I discovered in foldr'. As a result of this investigation, the original implementation was altered.

  • Summer of HLS by Fendor

    The project consists of three sub-goals: Bringing HLS/GHCIDE up-to-speed with recent GHC developments, improving the very delicate and important loading logic of GHCIDE, and bringing a proper interface to cabal and stack to query for build information required by an IDE.

  • Transpiling a large PureScript codebase into Haskell, part 2: Records are trouble by Artyom Kazak

    In this post we will look at row types and anonymous records. PureScript has them and Haskell doesn’t, so we have to do something.

  • Towards system profiler support for GHC by Andreas Klebinger

    In this blog post we discuss how we could adapt GHC’s register assignment to make perf usable on Haskell code, what benefits we could gain from this functionality, as well as the trade-offs associated with the change.


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

In brief

  • Cheap interpreter, part 6: faster stack machines by Gary Verhaegen

    Hopefully this post, where I show how to make that stack machine interpreter a bit faster, justifies the inclusion of stack machines in this series.

  • Convert Cabal-based projects to Bazel automatically by Facundo Domínguez & Andreas Herrmann

    If you have a large Haskell code base, organized in multiple Cabal packages, with many system dependencies, and which takes very long to build, then this post is for you. We describe herein gazelle_cabal, a new tool that generates Haskell rules to build with the Bazel build tool.

  • foralls in Data Types by Brandon Chinn

    This post contains a quick guide to using forall in a data type.

  • haskell.social by Luke Hoersten

    Welcome to haskell.social, a constellation of haskell-adjacent, social fediverse nodes.

  • Pufferfish, please scale the site! by No Red Ink

    To facilitate easy refactoring, we built this new service in Haskell. The effect was immediately noticeable.

  • Seeking a Project Lead for Matchmaker by Andrew Boardman

    Matchmaker is a project of the Haskell Foundation to help open-source maintainers and contributors find each other, and provide a smoother experience for people wishing to invest themselves in the open-source Haskell ecosystem.

Show & tell

Call for participation