Align, These, and HTTP headers

Course lessons

  • Functortown lesson 6: More than a sum – To continue from our previous lesson on the Bifunctor class, this week we’re looking at a bifunctor called These. It turns out to be particularly useful when we’re merging values from two containers.
  • Web Servers lesson 10: Interpreting request headers – This is the second of three lessons about using Attoparsec to read HTTP requests. We demonstrate a use of the Either monad to represent failure and traverse to apply a function that might fail to each element in a list.

Both lessons have exercises for you, so get ready to write some typeclass instances and parsers.


You may have notices a few days ago we added title attributes to many of the links to our reference pages.

These tooltips contain one-sentence definitions of the topic covered by the page, so if we like to something you haven’t heard of, you can get a quick idea of what it’s about without necessarily losing the flow of the page you’re reading.


When we launched Type Classes last June, the idea was that most of our pages would consist of both video and text. We went into this not having any experience making video, and although we’ve gotten better at it, we’ve decided that we’re both much better at writing and can accomplish a lot more by focusing on text (and diagrams). Hopefully the increased bulk of text has been making up for the lack of videos; please let us know if you have thoughts on the change.