Issue 164

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.

Featured

  • An opinionated beginner’s guide to Haskell in mid 2019 by Varun Gandhi

    This is mostly intended as a guide for people who are beginners to Haskell, or have experience in other similar languages and are looking to learn Haskell. Depending on where you are in your Haskell journey, parts of this guide might not make sense. That’s perfectly normal, relax.

  • Bringing TLS 1.3 to Haskell by Kazu Yamamoto

    So, it’s high time to bring TLS 1.3 to the Haskell community. We proudly announce that we have released TLS library version 1.5.0 with TLS 1.3!

  • Comparing the Same Project in Rust, Haskell, C++, Python, Scala and OCaml by Tristan Hume

    This was a rare opportunity to compare implementations of large programs that all did the same thing, written by friends I knew were highly competent, and have a fairly pure opportunity to see what difference design and language choices could make.

  • Patterns of Functional Programming: Functional Core - Imperative Shell by Javier Casas

    One of the ideas of functional programming is having pure functions, functions that have no side effects. But writing programs made exclusively from functions without side effects can’t be useful in the real world, because programs have to affect the real world somehow.

  • Peoplemon: An all-Haskell role-playing game by Alex Stuart

    This is a new and fairly substantial game that I wrote all in Haskell. I implemented many features of a certain 90s-era handheld role-playing game.

  • Shake from 10,000ft by Neil Mitchell

    The theory behind Shake is now well documented in the Build Systems a la Carte paper, but the engineering design of the system is not. This post is a high-level overview of Shake, from 10,000ft (the types are the types I’m thinking of in my mind - read the source code for the ground truth).

  • Shaking up the IDE by David Millar-Durrant

    Recently at Digital Asset we open sourced our programming language DAML, but I’m not going to talk about that today. Nestled inside its compiler is the Haskell IDE Core. I’m going to explain what that project is in this blog post.

  • Taking a look at how GHC creates unique Ids by Andreas Klebinger

    This post looks at one of the most hammered bits in the whole compiler, namely GHC’s unique supply. GHC requires a steady supply of unique identifiers for various reasons. There is nothing special about this. But I found the implementation quite interesting especially given how critical it is for the compiler.

  • The Functor Combinatorpedia by Justin Le

    The goal is to represent schemas, DSL’s, and computations (things like parsers, things to execute, things to consume or produce data) by assembling “self-evident” basic primitives and subjecting them to many different successive transformations and combiners.

  • Type Classes: Our one-year anniversary celebration by Julie Moronuki

    What would happen if two people worked full time on Haskell documentation? Could we get this ecosystem documented?

Jobs

  • Galois is hiring for a variety of roles (ad)

    Including but not limited to: Software Engineers/Researchers, Project Managers, Hardware Engineers, Software Integration Engineer.

    We collaborate with organizations like NASA, DARPA, and AWS 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, cryptographic algorithms, abstract interpretation, type theory, formal verification, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, and statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome; see lifeatgalois.com.

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

In brief

Package of the week

This week’s package of the week is unordered-containers, a library providing efficient hashing-based container types.

Call for participation

Events

North America

Europe

Asia

Africa

South America

Oceania