Issue 173
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
-
Property-Based Testing in a Screencast Editor by Oskar Wickström
Read the case studies and learn how property-based testing uncovered subtle bugs in a complex GUI application.
-
A reckless introduction to Hindley-Milner type inference by Phil Hazelden
I’m writing about it, based on the contents of my talk but more fleshed out and hopefully better explained.
-
How to write a game in Haskell from scratch by Mario Morgenthum
I wrote a 2D arcade game called Lambda-Heights in Haskell and want to share my experiences with you.
-
HSoC — Hadrian Optimisation: Elusive Unused Imports (Update 6) by James Foster
Since the last update I wrote an absurdly slow unused import tester, did a load of data entry for said tester, and left said tester running over the weekend (when I said slow, I meant slow).
-
Singleton by Type Classes
Whether computing’s menagerie of lists is a source of fascination or of annoyance depends on your interests, but regardless the varieties of lists are there and we must choose among them whenever we desire to line things up in a row.
-
Typed Lisp, A Primer by Musa Al-hassy
We begin with a shallow comparison to Haskell, a rapid tour of type theory, try in vain to defend dynamic approaches, give a somewhat humorous account of history.
-
Scarf: Distribute your system packages, understand how they are used, and make money from them by Avi Press
It’s a way to distribute CLI tools, system packages, etc so that you can automatically capture usage statistics and easily collect payments from users.
-
Express: Manipulate dynamically typed Haskell expressions involving applications and variables by Rudy Matela
Express allows manipulation of dynamically typed Haskell expressions. It is similar to Data.Dynamic but with support for encoding applications and variables.
Jobs
-
Haskell developer at Driebit in Amsterdam (ad)
Join our team of enthusiastic functional programmers to create awesome experiences for our clients in the following sectors: education, cultural and heritage. We work with clients who want to make the world a better place using the internet.
Trying to hire a Haskell developer? You should advertise with us!
In brief
-
Releasing two Haskell libraries in one day: libmodbus and git-lfs by Joey Hess
The first library is a libmodbus binding in Haskell. The second library is a git-lfs implementation in pure Haskell.
-
Episode 19: Profunctor Optics by Haskell Weekly Podcast
Cameron Gera and Andres Schmois talk about practical uses for profunctor lenses and optics.
-
PureScript version 0.13.3 by Harry Garrood
Enhancements: Eliminate empty type class dictionaries in generated code; Render doc-comments for data constructors and type class members; Show diffs of rows in errors and hints.
-
Python iterators: A Big Finale by Type Classes
Today we add five new pages to the series on iterators, bringing the total up to 11 pages and completing the series.
-
How GHC type inference engine actually works by Simon Peyton Jones
-
Monadic Party 2019 videos by Monadic Warsaw
-
2019 live stream by ICFP
-
Haskell kata: withTryFileLock by Michael Snoyman
The idea is to present a self contained, relatively small coding challenge to solidify some skills with Haskell.
-
Category Theory with Bartosz Milewski by CoRecursive Podcast
Today Adam talks to Bartosz Milewski. He is the author of a famous blog series, lecture series and now book on Category Theory for programmers.
Package of the week
This week’s package of the week is unipatterns. Have you ever wanted to match on a really large expression in-line but don’t want to bother pulling out a whole case-statement? Scrap your case statements with unipattern matches!