Haskell Weekly


Issue 145 2019-02-07

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 safe, purely functional programming language with a fast, concurrent runtime. This is a weekly summary of what’s going on in its community.


  • Curry-Howard Correspondence Example by Vladimir Ciobanu

    This post will show how a simple proof works in Logic, Type Theory, and Category Theory: given A ∧ (B ∧ C), prove (A ∧ B) ∧ C.

  • Announcing ghc-lib by Neil Mitchell

    On behalf of Digital Asset I’m delighted to announce ghc-lib, a repackaging of the GHC API to allow it to be used on different GHC versions. The GHC API allows you use the GHC compiler as a library, so you can parse, analyze and compile Haskell code.

  • Categories with Monadic Effects and State Machines by Marcin Szamotulski

    In this posts we will present categories which can run monadic actions, which we call categories with monadic effects (abr. EffCategories). It turns out that one can build them in an abstract way, much the same way as free monads, and use them to specify state machines in a succinct and type-safe manner.

  • CodeWorld Update — February, 2019 by Chris Smith

    I’ve been quiet on social media lately, but it’s been an active time for the CodeWorld project. Here’s a brief summary of some of the things happening in the last few months.

  • Comparing nub implementations by Andreas Klebinger

    This post was inspired by this medium blog post and the following discussion on reddit. There was a lot of discussion about big O performance. But zero numbers, which was sad so here we go.

  • Haskell Weekly in 2018 by Taylor Fausak

    At the end of each year I reflect on how things went. Here’s a look at Haskell Weekly in 2018, including popular links, the state of Haskell survey, and subscriber statistics.

  • Having your cake and eating it by Tim Spence

    At Permutive, we’re committed to functional programming. That typically means also committing to immutable data structures (a very good thing!), but there are times when an algorithm would run much faster or be more space efficient if it could update state in-place.

  • Implementing Nested Quotations by Matthew Pickering

    The purpose of this post is to explain how to implemented nested quotations. From our previous example, quoting a term e, gives us a term which represents e. It follows that we should be allowed to nest quotations so that quoting a quotation gives us a representation of that quotation.

  • Implementing Union in Esqueleto I by Matt Parsons

    We use the SQL UNION operator at IOHK in one of our beam queries, and esqueleto does not support it. To make porting the IOHK SQL code more straightforward, I decided to implement UNION. This blog post series will delve into implementing this feature, in a somewhat stream-of-thought manner.

  • Proxy arguments in class methods: a comparative analysis by Ryan Scott

    I’ve often wondered if there is one design to rule them all, so I wrote up this blog post in an attempt to better understand the pros and cons of each approach. Will we discover which design is unambiguously the best one by the end?


In brief

Package of the week

This week’s package of the week is libtelnet, a wrapper around libtelnet, a C library for handling Telnet streams.

Call for participation