Issue 72

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? We love contributions! Tweet us at @HaskellWeekly or open a pull request.


  • Haskell study startup

    Learning Haskell is a good idea, but you don’t have to do it alone. This repo brings together a number of resources for people who would like to start their own Haskell study groups but aren’t sure how to do it. Included here is advice for publicizing your group, guidelines for participants, a recommended schedule, and other resources.

  • What’s new in Cabal 2.0: Improved new-build, Backpack, foreign libraries and more!

    A couple of weeks ago we’ve quietly released versions 2.0 of both Cabal and cabal-install after approximately a year of development. The 2.0 release incorporates more than 1500 commits by 64 different contributors. This post serves as a formal release announcement and describes what’s new and improved in version 2.0.

  • Coxswain: A type checker plugin for row types

    I’ve been recently developing a Coxswain library that defines row types and implements row unification. I think the Haskell community is hungry for row types, especially records and variants. This wiki page outlines the basic design and intended use of the library, use cases I envision, and my open questions.

  • All about strictness

    This blog post was inspired by some questions around writing efficient Conduit code, so I’ll try to address some of that directly at the end. The concepts, though, are general, and will transfer to not only other streaming libraries, but non-streaming data libraries too.

  • Migrating from RethinkDB to Postgres: An experience report

    We switched from RethinkDB and ElasticSearch to Postgres, leaning heavily on Haskell in order to fill in some of the gaps quickly. The project was a success, and we’re very happy with the switch. Haskell has been invaluable for refactoring safely and confidently.

  • Benchmarks: GHCJS (Reflex, Miso) & Purescript (Pux, Thermite, Halogen)

    Once we were over the infamous Haskell learning curve, we began looking for functional programming, immutability, and types everywhere! Given that one-third of our code runs in the browser, it is only a matter of time before we make the switch to typed FP for front end development as well. But, which language/framework/library should we use?

  • Less parentheses

    Yesterday, at the Haskell Implementers Workshop 2017 in Oxford, I gave a lightning talk titled “syntactic musings”, where I presented three possibly useful syntactic features that one might want to add to a language like Haskell.

  • Announcing Squeal

    I’m very proud to announce Squeal, a new database library for Haskell. Squeal is the culmination of my Haskell experience for the last 4 years. It’s been a fun road and I’ve learned so much from so many friends and strangers in the community. So Squeal is dedicated to them.

  • MonadIO considered harmful

    What I’m going to talk about here is an alternative which provides most of the benefits with a very low barrier to entry: splitting up IO into granular monad type classes.

  • Last mile for cabal new-build: First and last status update

    Time flies! The Haskell Summer of Code is over, and this is my first and last status update. Last in the HSoC, but not in the project, as you’ll see. My goal was to bring new-build to a usable state, to eventually replace the old commands.


Sadly we aren’t currently aware of any Haskell job openings. Are you looking to hire a Haskell developer? If so, consider advertising with us!

In brief

Package of the week

This week’s package of the week is thank-you-stars, a command-line utility for starring the GitHub repositories of your dependencies.

Call for participation