Haskell Weekly

Newsletter

Issue 434 2024-08-22

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

  • Building Type Search for Unison by Chris Penner

    Today we’ll be looking into type-based search, what it is, how it helps, and how to build one for the Unison programming language at production scale.

  • Episode 55 – Sebastian Ullrich by The Haskell Interlude

    In this episode, Niki and Andres talk with Sebastian, one of the main developers of Lean, currently working at the Lean Focused Research Organization. Today we talk about the addictive notion of theorem provers, what is a sweet spot between dependent types and simple programming and how Lean is both a theorem prover and an efficient general purpose programming language.

  • Explaining Wadler’s pretty-printer by porting it to an imperative language by Benjamin Hodgson

    Phil Wadler’s pearl A Prettier Printer is a classic example of functional design. Starting with a simple model and some algebraic laws, Wadler derives an implementation of a well behaved layout algorithm. It’s a great read — go and read it if you haven’t! (I’m going to assume you have read it and try not to recapitulate too much below.)

  • Haskell for Dilettantes: Sokoban Homework #2 by Tea Leaves

    We do Exercise 1 of Homework 2: implementing a player sprite, and doing some very simple collision detection.

  • Let there be types: observable type sharing for GHC Core by Joseph Fourment

    In the context of my final year internship at Tweag, I’ve had the opportunity to work on the Glasgow Haskell Compiler (GHC), in an attempt to speed up compile times. GHC is renowned for many things, but compilation speed isn’t one of them. One specific problem exposed in issue #20264 is that in Core, GHC’s intermediate representation, types are systematically inlined, resulting in large type trees having to be traversed and transformed along the pipeline. This blog post aims to explain why this is the case, in which situations it can result in slow compile times and large memory usage, and what we can do about it.

  • Turnstyle - An esoteric, graphical functional language by Jasper Van der Jeugt

    One interesting aspect that I discovered (not invented) is that it’s actually somewhat more expressive than Lambda Calculus, since you can build Abstract Syntax Graphs (rather than just Trees). This is illustrated in the loop example above, which recurses without the need for a fixed-point combinator.

Jobs

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

In brief

Show & tell

Call for participation