Issue 178

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.

Articles

  • Alternative Servant Responses by Dan Fithian

    Last week I had an interesting run-in with a Servant API type. I was requesting from an API that could return two possible responses.

  • Bazel’s Persistent Worker Mode for GHC: An Industrial Internship by Artem Pelenitsyn

    My internship goal was to improve the method of communication between Bazel and the Haskell GHC compiler by adding support for this persistent worker mode in rules_haskell.

  • Eventful GHC by Alp Mestanogullari

    What can we do when it takes GHC a lot of time to compile a given module? Where is it spending its time?

  • Haskell on Raspberry PI 4 by Vaclav Svejcar

    This time, with greatly increased available RAM size, I was able to make things working. You can find the entire process described in steps bellow.

  • Implementing a Content Security Policy in Yesod by Jezen Thomas

    A CSP is just a HTTP response header, so you’d think it would be trivial to add. Unfortunately, that isn’t the case.

  • Implementing graceful-close in Haskell network library by Kazu Yamamoto

    Unfortunately, most HTTP/2 server implementations do not close connections gracefully, hence browsers cannot display pages correctly in some situations.

  • Learning Haskell: A Resource Guide by Denis Oleynikov

    One of the most common difficulties that all of us face when we decide to start learning something new — we just don’t know where to start and where to learn.

  • Linear Algebra of Types by Philip Zucker

    It gives my brain a pleasant thrum to learn new mathematics which mimics the algebra I learned in middle school.

  • Managing GHC versions with ghcup by George Wilson

    More recently I have mostly been using the ghcup tool, which lets you install and manage multiple GHC versions on most Linux distributions and macOS.

  • One plus one equals two by Boro Sitnikovski

    Suppose one of your programmer friends comes to you and says: “Hey, convince me that 1 + 1 = 2!”

  • Opaque constraint synonyms by Csongor Kiss

    The list of type class constraints in a function signature can sometimes get out of hand. In these situations, we can introduce a type synonym to avoid repetition.

  • Optics + Regex: Greater than the sum of their parts by Chris Penner

    The library presented in this post is one of many steps towards getting everyone interested in the amazing world of Optics!

  • Inverting functions by Type Classes

    Often we need a pair of conversion functions: one to encode a value as a string, and another corresponding function to decode a string back into the original type.

  • Probabilistic Programming with monad-bayes, Part 1: First Steps by Tweag I/O

    We start this series gradually with some simple binary models, move next to linear regression, and finish by building a simple neural network that we “train” with a Metropolis-Hastings sampler.

  • Quiz: Which typeclass are you?

  • Unit testing wai applications by Mark Seemann

    I’m currently developing a REST API in Haskell using Servant, and I’d like to test the HTTP API as well as the functions that I use to compose it.

Jobs

Trying to hire a Haskell developer? You should advertise with us!

Packages of the week

Call for participation

Hacktoberfest starts on October 1! Browse Haskell issues on GitHub.