Issue 164 2019-06-20
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.
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!
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.
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?
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!
- A Tic-tac-toe CLI game in Haskell
- Announcing looper
- Brittany version 0.12.0.0 released
- Count-Min Sketch in Haskell
- Functional Design and Architecture Book
- GHC 8.8.1-alpha2 released
- HLint’s path to the GHC parser
- ICFP 2019 accepted papers
- Lambda-Heights: A fast paced action game
- Leaves of Hash
- Loading Games and Changing Colors!
- Records of Functions and Implicit Parameters
- Stack version 2.1.1 released
- TaskLite: A CLI task manager
- Thoughts on PureScript package management in 2019
- Understanding unliftio
Package of the week
This week’s package of the week is unordered-containers, a library providing efficient hashing-based container types.