Issue 113

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.


  • Rethinking static reference tables in GHC

    Recently I was lucky enough to be able to finish a project I’ve been working on intermittently in GHC for several years, and the result was satisfyingly better on just about every axis.

  • QuantifiedConstraints and the trouble with Traversable

    I will show how Representational1 lets us derive two more classes in the base library using GND, which would be impossible without the use of QuantifiedConstraints.

  • Two security holes and a new library

    For the past week and a half, I’ve been working on embargoed security holes. I’m announcing a new Haskell library, http-client-restricted, which could be used to avoid similar problems in other programs.

  • Coercions and roles for dummies

    You’ve heard of the type system, which makes sure your terms are sane. Maybe you’re also aware of the kind system, whose job it is is to make sure your types are reasonable! But did you know Haskell has an even more obscure system than these?

  • Selective applicative functors

    In this blog post I’ll explore what I call selective applicative functors, which extend the Applicative type class with a single method that makes it possible to be selective about effects.

  • How to build a custom GTK widget with Haskell

    Gifcurry, a cross-platform GIF creator slash video editor made with Haskell, needed a custom widget to interface with user selected time slices.

  • Scheduling effects

    In my efforts to speed this implementation up, I came across a wide and interesting literature on scheduling effects, which I’ll go through a little here.

  • Pragmatic Haskell 2: IO Webservant

    In this blog post the simple web server will get an extra REST endpoint that can do IO actions. This is an important part of pragmatic Haskell programming. Without IO our program can do nothing.

  • Nix scaffolding for running Haskell plugins

    I am writing plugins which don’t change the semantics of my programs but are useful for debugging. I only sometimes want to run them and don’t want them to appear as dependencies at all on Hackage.

  • Deriving Vinyl representation from plain Haskell records

    Can we do better? For instance, can we just say something like deriveVinyl ''UserT and have a type class instance generated for us automatically?


  • Backend software engineer at SimSpace in Boston

    SimSpace is looking for a backend software developer to help shape the future of realistic environments used for cyber security development, testing, and training.

  • Intern at Tesla in Palo Alto

    Our team supports firmware and software development for Tesla products through custom tooling, process optimization, and data integration.

In brief

Package of the week

This week’s package of the week is scientific, a library that provides space-efficient scientific numbers

Call for participation