Haskell Weekly


Issue 110 2018-06-07

Subscribe now! We'll never send you spam. You can also follow us on Twitter or with 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.

Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.


  • Eta v0.8: REPL and metaprogramming

    This release implements two long-awaited features: (1) Eta REPL: It is based on GHCi and provides a way to interactively write Eta programs using the read-eval-print-loop. (2) Template Metaprogramming: It is based on Template Haskell and allows you to do code generation at compile time similar to macros in Lisp-like languages.

  • Type classes: Prepare for launch

    The videos give us a chance to show what happens when you make different kinds of mistakes, but the text is more useful when you want to look back, review, refresh your memory.

  • Restyled

    Restyled makes it easy to maintain, or transition to, a consistent coding style across your entire organization by integrating directly into your existing Pull Request process.

  • Generating art with Haskell

    This article is an introduction to writing generative art with Haskell, using a stack inspired by Ben Kovach’s similar post I came across in March. I assume familiarity with Haskell and an interest in generative art.

  • Cofree will tear us apart

    Recently I’ve been working on distributed systems and I often need to deal with the data that may be located anywhere. We’ll see how just one algebraic construction helped to describe a problem with recycling data in general and then to solve it.

  • Pattern matching ADTs

    This post is about implementing coverage checking of pattern matches using Haskell. It does not involve any super-advanced type-level trickery, so as long you’re somewhat comfortable with monad transformers you should be fine.

  • Breadth-first traversals in far too much detail

    After looking at the algorithms I posted last time, I noticed some patterns emerging which I thought deserved a slightly longer post. I’ll go through the problem (Gibbons 2015) in a little more detail, and present some more algorithms to go along with it.

  • Heterogeneous lists with dependent types in Haskell

    With the help of GHC’s many extensions, we can encode simple forms of dependent types, allowing us to enforce more expressive invariants in our programs at compile time.

  • Research as a build system with Shake

    In the last year, I have the opportunity to try out a new way to improve upon my own productivity doing research and other university-related projects. I call it the research build system, and it has allowed me to iterate on my work more quickly.


  • 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 clock, a library that provides convenient access to high-resolution clock and timer functions of different operating systems via a unified API.

Call for participation