Haskell Weekly


Issue 64 2017-07-20

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 purely functional programming language that focuses on correctness, productivity, and expressiveness. This is a weekly summary of what’s going on in its community.


  • Announcing: the new unliftio library

    For the past few years, Francesco Mazzoli and I have discussed issues around monad transformers — and the need to run their actions in IO — on a fairly regular basis. I wrote the monad-unlift library a while ago to try and address these concerns.

  • Type safe dimensional analysis in Haskell

    Years ago my colleague Gustavo asked how I would represent physical units like m/s or kg*m/s^2 as types so the compiler can check that they match up and cancel correctly. F# supports this natively, but it felt weird to have it baked into the type system.

  • Morgan Stanley open source: hobbes

    Over the last few years, I have been developing hobbes — a programming language, JIT compiler, and database system — as part of my work for Morgan Stanley. It has become a critical piece of infrastructure in our low-latency, high-volume trading applications.

  • NStack is hiring Haskellers in London (onsite/remote) (ad)

    NStack lets data scientists and analysts to do sophisticated data work in the cloud without a team of engineers. Come help us build the platform for composable, data-driven microservices, using a mixture of Haskell and Linux systems tech. Reply via the link or email jobs@nstack.com.

  • Demystifying Haskell assignment

    This post clarifies the distinction between <- and = in Haskell, which sometimes mystifies newcomers to the language. Most languages use only one symbol to assign values (such as = or :=), so why does Haskell use two?

  • Moving beyond types

    If you look at the original property-based testing library, QuickCheck, tests are very closely tied to types: The way you typically specify a property is by inferring the data that needs to be generated from the types the test function expects for its arguments. This is a bad idea.

  • Get started with sending SMS in Haskell

    Functional programming languages are gaining in popularity so let’s hop on that Haskell bandwagon. With Haskell, you can write clean, concise, and expressive code.

  • A modest scraping proposal

    Our platonic ideal of a Haskell library is something that exports a single, coherent concept in such a way that it never needs to be reimplemented. This is not that: scraping is a dirty, error-prone, highly contingent endeavor.

  • State machine testing with Hedgehog

    This is a really nice way to specify and test effectful systems. It’s much more effective than example-testing with canned action sequences. There’s also a lot of potential for test reuse: anything implementing the same interface can use the same property.

  • The world’s fastest extensible effects framework

    I uploaded a new version of monad-skeleton-0.1.4, an operational monad library. As a result of performance optimization in the new version, extensible, the extensible effects library based on it, is now much faster than the other well-known libraries.

  • Free monad cheatsheet

    The free monad allows you to build your own custom monad. This lets you use the do notation for whatever you want. I find that a lot of the tutorials on the Free monad have too much build-up, and it’s hard to figure out what the code should actually be at the end.

Package of the week

This week’s package of the week is language-ninja, a library for dealing with the Ninja build language.

Call for participation

Do you have a beginner-friendly issue you want some help with? Email info@haskellweekly.news to get it included here!

In brief