Issue 109

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.

Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.


  • GHC 8.4.3 released

    The GHC team is pleased to announce the availability of GHC 8.4.3. Thanks to everyone who has contributed to developing, documenting, and testing this release!

  • Fibonacci compiles end-to-end: Haskell to WebAssembly via GHC

    The project recently reached an exciting milestone: for the first time, simple Haskell functions can be compiled all the way down to WebAssembly from Haskell and executed with a real JavaScript runtime!

  • Combinatorics of permutations: Introduction

    This is a very small chapter (just one page) in the book, and all we do here is define a permutation, introduce some notation, and count the total number of permutations of a given number of objects (everyone knows the answer).

  • Edit: A small package for rewriting things

    I was working on a compiler in the last semester with some friends and we found it helpful in saving the “was something changed” information when doing constant folding (expression level) and passing that information to the Hoopl library.

  • Haskell/GHC symbol search cheatsheet

    Several features of Haskell/GHC have low Google-ability because some of them are composed of symbols. This page is a reference collection to support search of them.

  • Karya: A music editor

    Even if you’re not interested in the music part, it’s an example of a Haskell program with a GUI, REPL based interface, tests, profiling, and a Shake-based build system, although probably idiosyncratic implementations of all of the above.

  • My open source goals

    I’ve worked on a lot of open source Haskell projects over the past ten years, and continue to do so today. However, I’m making a conscious decision to shift where my focus lies. My goal is to focus much more on enabling others to work on projects, rather than doing so myself.

  • Squash the irrelevant bits

    Squashed c x let a library writer provide x in “c-irrelevant” way to a library user. The Monad instance allows to work on the wrapped value. However, we cannot extract the original value. This restriction maybe be useful to enforce correctness, without relying on the module system!

  • Upgrading Shake

    Looking back, the experience of upgrading Shake didn’t turn out to be as difficult as I had once thought. This exercise pretty much reinforced what I had already known about using Haskell industrially.


  • Software engineer at ITProTV in Gainesville, Florida

    ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.

In brief

Package of the week

This week’s package of the week is sixty-five-oh-two, an eDSL for writing 65(C)02 bytecode.

Call for participation