Issue 122

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.


  • 3D projection in Haskell

    I recently watched a video from The Coding Train on 3D rendering with rotation and projection. It was written in JavaScript using the p5 library, and showed how to draw 3D graphics using a 2D graphics library. It got me wondering if I could recreate it in Haskell.

  • Bit-manipulation operations for high-performance succinct data-structures and CSV parsing

    In this blog post I will properly introduce the popcnt, pext, tzcnt and pdep operations and how they relate to the performance of our conceptual succinct data-structure based CSV parser.

  • Marrying Haskell and hyper-threading

    In this blog post, I’d like to tell one story that had happened with one Haskell application. Then explain how we can start threaded RTS, so it is aware of the CPU layout on your system.

  • Megaparsec 7

    The post is about the most obvious things a user will run into when upgrading. Thus, we will talk about breaking changes and new ways of doing certain things. Finally, there a bit of benchmarking bravura, because yes, we’re now faster than ever (sometimes a bit faster than Attoparsec).

  • Notes from reading Type Driven Development with Idris

    These notes compare Idris code in the book against Haskell. My goal is to write Haskell code very closely mimicking Idris to see the value added by dependent types.

  • Notes on Agda’s termination checker

    I’m positively surprised about Agda’s termination checker. I’m working on a larger exercise, and Agda believes my main lemma (which does all the work for one liner theorem) terminates. But I don’t, yet.

  • Package environment files run counter to reproducibility

    The “package environment file” feature (silently) introduced into GHC and cabal-install has caused a good deal of discussion already. But it seems we have so far missed one more fundamental issue.

  • Taking a look back: My mistakes in learning Haskell

    The course starts next week. But before it does, I wanted to take this opportunity to tell a little bit of the story of how I learned Haskell. I want to share the mistakes I made, since those motivated me to make this course.

  • The great power of newtypes

    Roles, safe zero-cost coercions, and DerivingVia (Monoid and Foldable included)

  • What I’ve learned since quitting Elm

    In 2015, I spent some of my spare time trying out Elm, to render something simple in the browser and also to run some programs in Node. In this post, I’ll just highlight some of the most important things I’ve learned since the beginning of 2016 by using PureScript.


In brief

Packages of the week

Call for participation