Issue 111

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.


  • Accessing Postgres in a dataframe in Haskell

    I have been accepted to Google Summer of Code 2018 as part of the open source organization. As part of this, I am trying to implement an add-on to the Frames library that would allow one to access Postgres from a dataframe in Haskell.

  • Codewars: An interactive online judge

    An online judge is a website where there are programming challenge, you can try to send solution (as program) and they get automatically graded against some test.

  • Contributing to GHC 1: Preparation

    Without GHC and the hard work that goes into it from many volunteers, Haskell would not be the language it is today. So in the next few weeks we’ll be explore the process of building and (hopefully) contributing to GHC.

  • GHC proposal: Remove the * kind syntax

    As we move towards DependentHaskell, it is increasingly painful to support this historical choice of name. We propose to slowly and carefully remove this syntactic oddity from the language.

  • Haskell REST API discussion

    A few questions for those of us that write REST APIs in Haskell.

  • I built a chess analytics web app in Haskell

    I like chess, analytics, and Haskell, so I decided to combine all this into a single app. My aspiration for the app is to be able to produce a large number of interesting statistics and turn it into something like “538 for chess”.

  • Lenses embody products, prisms embody sums

    This post won’t be a “lens tutorial”, but rather a dive into an perspective on lenses and prisms that I’ve heard repeated many times (and always credited to Edward Kmett) but never quite expanded on in-depth.

  • Motivation for monads

    If you are new to Haskell-style languages, monads probably feel clunky. Sure, the bare bones example that a monad tutorial will show you is clean enough, but as soon as you try to do anything more complex, you can easily end up in a morass of type errors.

  • Source plugins: Four ways to build a type checked Haskell expression

    In this post, I’ll demonstrate and explain four different ways of arriving at a type checked expression which can then be inserted into a program.

  • Turning bottom-up into top-down with reverse state

    I love bound - it makes De Bruijn indices mindlessly easy. I also love Plated for all sorts of whole-program transformations. I think they’re two indispensable tools for working with programming languages. Unfortunately, they’re not compatible.


  • Software engineer at ITProTV in Gainesville, Florida

    ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.

In brief

Package of the week

This week’s package of the week is Summoner, a tool for creating completely configured production Haskell projects.

Call for participation