Issue 98

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.1 released

    The GHC developers are very happy to announce the 8.4.1 release of Glasgow Haskell Compiler. This is the third major release in the GHC 8 series. As such, the focus of this release is performance, stability, and consolidation.

  • Introducing Toxiproxy Haskell

    With the release of toxiproxy-haskell on Hackage, I’d like to introduce the Haskell community to failure testing using Toxiproxy so that they can improve the resilience of their network connected applications.

  • Refactoring and finding the right data structure

    The program allowed what should’ve been considered conflicting modes of operation. In this episode I’ll perform the same modification, to show you how the right data structure can guide and improve your implementation.

  • Data visualization with Haskell: NYC public urination

    Using Haskell, we queried, processed, and visualized 2,678 3-1-1 Urinating in Public complaints recorded between 2010 and 2016. A definite cyclic pattern can be seen from year to year.

  • Safe library with better stack traces

    To get the stack traces just add Partial to any function you believe to be partial — it’s easy. If you are happy to stick with GHC 8.0 and above you can use HasCallStack from GHC.Stack without depending on safe.

  • Generating artwork with Haskell

    I’ve been creating generative art consistently for about six months now. People are starting to ask what my stack looks like, and until now I haven’t had anything to point at; I’d like to change that today!

  • Haskell design patterns: The handle pattern

    The handle pattern allows you write stateful applications that interact with external services in Haskell. It complements pure code well, and it is somewhat the result of iteratively applying the question: Can we make it simpler?

  • Servant route smooshing

    Because Haskell’s type system isn’t as pleasant as the value system, this can get gnarly. Servant has a very happy path — but that path is very narrow.

  • Text reflow in Haskell

    I noticed that when running on the Windows command line, the narrator would break words apart when it reached the 80 column mark. In order to make my text adventure screen-reader friendly I had to support an 80 character column limit.

  • Backpack for initial and final encodings

    Backpack lets us decompose final encodings a little more than we can with the usual approach, although we are partly trading off newtype wrapping for sub-libraries. I still really like the usage of it.


  • Programming language theory engineers at IOHK

    IOHK is hiring six Programming Language Theory engineers, to design and implement the smart contract language Plutus and related domain specific languages.

  • Functional developers at Tracsis in Leeds

    We are working on a green-field, high-availability, unrelentingly cloud-y web product for rail control and planning. Our stack is a high-availability, event-sourced Yesod backend running on AWS.

In brief

Package of the week

This week’s package of the week is Hedgehog, a modern property-based testing system that will eat all your bugs.

Call for participation