Issue 60
Welcome to another issue of Haskell Weekly! Haskell is a purely functional programming language that focuses on robustness, concision, and correctness. This is a weekly summary of what’s going on in its community.
Featured
-
Instead of just teaching you how to use the library, this post will demonstrate why you need it and how it works internally, to help you avoid some of the potential pitfalls of the library.
-
Announcing Weeder: dead export detection
Most projects accumulate code over time. To combat that, I’ve written Weeder which detects unused Haskell exports, allowing dead code to be removed (pulling up the weeds).
-
Dhall is now a template engine
Now you can use Dhall as a template engine with the newly released
dhall-text
library which provides adhall-to-text
executable for templating text. -
Front Row is hiring a senior backend Haskell engineer (ad)
Come change how 6.5+ million K-12 US students learn Math, Language Arts, Social Studies and more. Use data, advanced type systems, great product design and deep pedagogy to change lives.
-
In this post I’ll show how to make database programming fun by using packages that make testing easy. I’ll walk through a example of building a durable queue backed with PostgreSQL.
-
There are various good reasons why you might want to strip
ExceptT
from your Servant handlers. There are various good reasons why you wouldn’t want to do that. I’m in the first camp — I don’t wantExceptT
overIO
. -
On competing with C using Haskell
By writing very straight-forward pure, functional Haskell code without any special trickery, you can get performance equivalent to what you’d get by calling out to a C function, which is also in the same order of magnitude as the same algorithm implemented in a program completely written in C.
-
How well does it work? Profiling in Haskell
This is where benchmarking and profiling come in. We’re going to take a specific problem and learn how we can use some Haskell tools to zero in on the problem point.
-
This post develops a simple blockchain with the goal of understanding the basics of the chain. The most straightforward part of a blockchain is the chain itself, a sequence of blocks.
-
Mezzo: type-safe music composition
Its novelty is in the fact that it can enforce various rules of music composition statically, that is, at compile-time. This effectively means that if you write “bad” music, your composition will not compile — think of it as a very strict spell-checker for music.
-
Linear types 101 and its relevance to streams
It creates a resource aware type system, which not only knows types of values but also number of uses; a linearly typed value is guaranteed to only have one reference to it at any time, duplication or ignoring will not compile.
Package of the week
This week’s package of the week is async, a library that allows you to run IO operations asynchronously and wait for their results.