Issue 78

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? We love contributions! Tweet us at @HaskellWeekly or open a pull request.


  • Call for committee nominations

    It is time to put out a call for new nominations (typically but not necessarily self-nominations) to the committee. The committee serves as a board of directors for, a 501(c)3 nonprofit which oversees technical and financial resources related to Haskell community infrastructure.

  • Stack 1.6 pre-release testing and binaries

    There have been some major changes to Stack’s internals since version 1.5.1 in order to update the package and extra-deps syntax, support extensible custom snapshots, and to support version 2.0 of the Cabal library. We’d appreciate extra testing before we cut a release candidate for version 1.6 to make sure we catch any edge cases.

  • GHC cross compiler binary distributions

    As mentioned in the September edition of What is New in Cross Compiling Haskell, I’ve been working on producing binary distributions of cross compilers, so that installing a cross compiler becomes almost as trivial as installing a GHC binary distribution.

  • Submitting a pull request to GHC

    When you find things incomplete or unclear in Haskell’s documentation, please fix them! I’ve submitted a handful of pull requests so far to make tweaks to the API docs. GHC seemed intimidating at first, but I’ve found the maintainers to be quite friendly.

  • Becoming foolish

    Seeing this for the first time, trying to wrap my head around it, had created a bug inside my head. It had conflicted with what I knew — that all languages worked the same, and the difference was merely syntax! But here, I was seeing something that just worked differently, and did not fit my world view!

  • Sixten

    Sixten is an experimental functional programming language where all data is unboxed by default. Functional programming with fewer indirections! Sixten is very related to other functional languages such as Haskell, Agda, and Idris. The biggest difference between other languages and Sixten is the way that Sixten allows us to control the memory layout of data.

  • Scrap all your type classes but one

    In “Scrap your type classes” Gabriel Gonzales explains how we can replace type classes with dictionary passing. In this article I describe a sort of “halfway house” to scrapping all our type classes. Suppose we were only allowed one type class. Which would we choose?

  • Optimizing free monad programs using Plated

    In this article I demonstrate how to use classy prisms and Plated to write and apply optimizations to programs written in a free monad DSL. Plated is a class in lens that provides powerful tools to work with self-recursive data structures.

  • The pickled onion problem

    I think that if you, well-intentioned as you are, want to really encourage beginners to ask more questions and seek help, you need to look around and see how many programmers are leaving pickled onions in the food drive boxes.

  • Manipulating maintainers

    I’d like to share some thoughts on this from a much more positive standpoint, which will help you get people to pay more attention, be more helpful, and — perhaps most importantly — create a healthier open source community over all.


  • Tenure-track assistant professor of Computer Science

    California State University, Los Angeles is looking for a tenure-track assistant professor of Computer Science to start in August 2018. The primary professional responsibilities of instructional faculty members are: teaching, research, scholarship and/or creative activity, and service to the University, profession and to the community.

In brief

Package of the week

This week’s package of the week is Hasmin, a CSS minifier that reduces the size of the output and improves Gzip compression.

Call for participation

Looking for something to contribute to? Check out the Hacktoberfest issues on GitHub!

The call for proposals for the Real World Functional Programming miniconf at LCA2018 is open from now until November 27.