Haskell Weekly


Issue 141 2019-01-10

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


  • Purely Functional GTK+, Part 1: Hello World by Oskar Wickström

    In the last episode we explored gi-gtk, a package providing Haskell bindings to the GTK+ library, and noted in the end that the programming style was imperative and object-oriented. In this episode, we’ll program in a more functional style using gi-gtk-declarative.

  • Advent of Schemes by Fintan Halpenny

    On the lookout for the perfect opportunity to add some skill points to my recursion schemes knowledge I decided to tackle the Advent of Code challenges but force myself to use recursion schemes.

  • Cantor Pairing

    Consider the following data type: data TrafficLight = R | Y | G It’s straightforward enough to see that if I have a value of type TrafficLight, there’s only 3 (moral) possibilities.

  • Parsing and generating ABIF files (DNA chromatograms) by Andre Van Der Merwe

    Hyrax ABIF is a Haskell package, that I created at HyraxBio to test our bioinformatics software pipeline. In this post I’ll show how the package can be used as a standalone tool as well as looking at how the Haskell code works.

  • Post-Christmas Advent of Code In Haskell: Day 1 by Tobias Pflug

    Now that Advent Of Code 2018 is over I decided to return to the challenges but instead of just solving them I will try to also explain how I am solving them in Haskell.

  • Typeable: A long journey to type-safe dynamic type representation (Part 1) by Toan Nguyen

    Typeable is a module in base package. Maybe you already know, the Typeable class is used to create runtime type information for arbitrary types. This post gives you a short story about the innovation of Typeable along with GHC extensions.

  • Validating Form Data via Applicative Functors by Kostiantyn Rybnikov

    I’ve had an interesting mini-journey while I was in search of a way to validate input data in Haskell recently, and ended up implementing one myself, and then got an interesting comment on reddit, which I will unwrap in this post.


  • Galois is Hiring! (ad)

    Galois is looking for Software Engineers/Researchers and Project Managers! We collaborate with organizations like NASA, DARPA, and Amazon Web Services to explore blue sky ideas and turn them into usable technology. Some of the things we’ve worked on in the past: Formal methods, static analysis, binary analysis, cryptographic algorithms, domain specific languages, programming languages theory, abstract interpretation, type theory, formal verification and software correctness, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome (see https://lifeatgalois.com).

  • Senior Backend Engineer at Freckle in San Francisco

    We’re an agile and lean small team of engineers, teachers and product people working on solving important problems in education. We hyper-focus on speed, communication and prioritizing what matters to our millions of users.

  • Senior Haskell Engineer at Hasura in Bangalore

    Hasura.io is hiring senior Haskell developers. We build tools for developers to lessen the effort that goes into building backends for applications. One of our core products is graphql-engine which gives the developer a realtime GraphQL backend on a Postgres database.

  • PhD Student at University of Nottingham

    I’m looking to recruit an excellent new PhD student to come and work with me in the Functional Programming Lab in Nottingham.

In brief

Package of the week

This week’s package of the week is suavemente, an applicative functor capable of seamlessly talking to HTML elements.

Call for participation