Issue 68

Welcome to another issue of Haskell Weekly! Haskell is a purely functional programming language that focuses on correctness, productivity, and expressiveness. 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.

Featured

  • Build a Reddit Slack bot in Haskell

    Do you like Reddit? Do you like bots? If you answered yes to one, both, or neither of those, then you are in luck. This post will go over how to build a Reddit Slack bot in Haskell.

  • I Haskell a Git

    It turns out that understanding Git from the inside out is far, far easier than whatever I was trying to do earlier. This blog post is my attempt to share that comfort and understanding with you.

  • Deriving type classes in Haskell is slow

    Have you ever wondered how long it takes to derive type classes in Haskell? Wonder no more! I wrote an extensive benchmark that derives a variety of common type classes and ran it against many versions of GHC. The takeaway? Deriving type classes in Haskell is slow.

  • Starting out with Haskell Tensor Flow

    In this first article, we’ll go over the basic concepts of Tensor Flow. We’ll see how they’re implemented in Python (the most common language for TF). We’ll then translate these concepts to Haskell.

  • End to end testing with Hspec (almost)

    This is a story about setting up end to end (“E2E”, AKA acceptance tests) testing running in Haskell.

  • time.gif

    time.gif is written in Haskell and works by dynamically generating each frame of the GIF and slowly feeding them over the HTTP connection.

  • Efficient immutable collections

    In this thesis we introduce data structures that are more performant than comparable state-of-the-art standard library data structures — in terms of operation runtimes and memory footprints — and more general by supporting storage and retrieval of type-heterogeneous data where parametric polymorphism on the language level falls short.

  • Usability issues with linear Haskell

    In this post I will discuss a few of the annoying usability issues that have surfaced when working with linear types in a practical setting.

  • User-programmable infix operators in Racket

    The resulting technique makes it possible for fixity information to be specified locally in a way that cooperates nicely with the Racket macro system, allowing the parsing of infix expressions to be manipulated at compile-time by users’ macros.

  • Writing performant Haskell (5 of 6): Dive into text

    In this post, we finally return to the proposition from the second post that using text gives us more optimization flexibility. We will dive into the internals of the text package and hopefully come out with some seriously fast functions.

Jobs

  • Jobs at Lumi.com

    Lumi is a platform that helps e-commerce businesses manage their packaging supply chain. We are currently hiring backend and frontend engineers. You will work closely with Phil Freeman (creator of PureScript) and our small, distributed engineering team headquartered in Los Angeles. Remote applicants across all US time zones are encouraged!

In brief

Package of the week

This week’s package of the week is http2-client, a native-Haskell HTTP2 client library based on http2 and tls packages.

Call for participation

Events