Haskell Weekly


Issue 315 2022-05-12

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.


  • Better executable path queries in GHC 9.4 by Fraser Tweedale

    I previously wrote about System.Environment.getExecutablePath and how I fixed it on FreeBSD. Unfortunately, this function still has some problems. In this post I explain the problems and introduce executablePath, the solution arriving in base- (GHC 9.4.1).

  • Existential optics by Marco Perone

    In this post, I present a way of encoding optics that is different from usual. This encoding, called existential optics, is easier to understand than the other encodings, since it makes more explicit the structure of each optic.

  • Functional Thinking for the Imperative Mind: Getting Your Feet Wet by Michael Bevilacqua-Linn

    In which we dip our toe into the functional programming waters and answer the question, how does functional thinking differ from the imperative kind?

  • GHC Core, STG and Cmm views on Compiler explorer

    I recently did some work on compiler explorer to add additional output panes for GHC Core, STG and Cmm. Similar to how you could have LLVM IR or Rust MIR outputs for those compilers.

  • Hasura and Well-Typed collaborate on Haskell tooling by Matthew Pickering

    Well-Typed and Hasura have been working together since 2020 to improve Haskell tooling for commercial Haskell users, taking advantage of Well-Typed’s expertise maintaining the Glasgow Haskell Compiler and Hasura’s experience using Haskell in production at scale.

  • Improving performance of your Haskell code with profiteur by Jay

    This article covers the steps for running a profiling of Haskell code and generating a visualization with profiteur. We also walk through an example of a basic analysis to get you inspired (and us as well, when we forget what we did next time).

  • A little Haskell: epoch timestamp by Magnus Therning

    A need of getting the current UNIX time is something that comes up every now and then. While it’s often rather straight forward to get the Unix time as an integer in other languages, in Haskell there’s a bit of type tetris involved.

  • Let’s Program a Calculus Student II by Iago Leal de Freitas

    Today we will redefine these symbolic derivatives using a different approach: automatic differentiation. This new way to calculate derivatives will only depend on the evaluation function for expressions.

  • Making type-safe internet bots with Haskell by Wander Hillen

    In this article, I will describe a fairly general way to use Haskell for constructing a specific kind of clients of the second type: clients that listen to a single network socket and send replies to that same socket, possibly while maintaining state.

  • Was simplified subsumption worth it for industry Haskell programmers?

    So, i’m left frustrated with “simplified” subsumption and posting here for help answering: Are others in the same boat? Are there advantages i’m not seeing?


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

In brief

  • Effective Haskell by Rebecca Skinner

    Put the power of Haskell to work in your programs, learning from an engineer who uses Haskell daily to get practical work done efficiently. Leverage powerful features like Monad Transformers and Type Families to build useful applications.

  • Finding What You Seek by Monday Morning Haskell

    This week we’ll learn a few tricks that are a little more specific to handles on files. File handles are seekable, meaning we can move around where we are “pointing” to in the file, similar to moving the position of a video recording.

  • The golden rule of software distributions by Gabriella Gonzalez

    This is a short post documenting a pattern I learned as a user and maintainer of software distributions. I wanted to share this pattern because the lesson was non-obvious to me in my early days as a software engineer.

  • The Lost Elegance of Computation by Type Theory Forall

    In this episode I had the pleasure to have an in-depth conversation with Conal Elliott about his life, his work, his philosophy and his many opinions about research and the current state of PL Research and how it lead him to come with the concept of Denotational Design.

  • Serokell Shop

    FP merch that doesn’t suck.

  • Simon PJ’s new, permanent home page by Simon Peyton Jones

    Following my move to Epic, my home page at Microsoft Resarch will soon disappear. I have a new, permanent home page.

  • SimpleX Chat - v2.0 of mobile apps just released by Evgeny Poberezkin

    This version adds sending images and files to our iOS and Android apps, and since our v1 release two months ago there were many other improvements.

Show & tell

  • GHCup version by Julian Ospald

  • keter version 2.0 by Jappie Klooster

    This is a breaking release which cleans up a lot of tech debt. For example, we now follow the naming convention recommended by Gabriella Gonzalez, and we got rid of data-default as a dependency, Functionally, the app runs the same.

  • list-transfomer by Gabriella Gonzalez

    This library provides a list monad transformer that enriches lists with effects and streams efficiently in constant space.

  • mtl version 2.3 by Emily Pillmore

    mtl-2.3 has been released! This release marks the first major version for the library in a long time, and addresses some longstanding issues that have taken years to fix. As a result, this will be a breaking update for many.

Call for participation