Issue 153 2019-04-04
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.
GHC Infrastructure Update by Ben Gamari
Since November we have been quietly working behind the scenes to make this new infrastructure a reality; this has been a massive project and however I’m happy to say we are now emerging on the other side and we are very happy with the result.
Extending the Persistent QuasiQuoter by Matt Parsons
The QuasiQuoter does a ton of stuff for you. In this post, we’re going to learn how to make it work for you!
GHC, Alpine, Stack, and Docker by Joe Kachmar
This repository is a small demonstration of the steps required to build an Alpine Linux Docker image with all the tools necessary to compile Haskell programs linked against musl libc.
Haskell coreutils -
I’ve implemented a couple Unix core utilities in Haskell, and want to start a series of posts going through the details - starting with simple programs like
Hierarchies In a Hakyll Blog by Artem Chernyak
Hakyll didn’t support this out of the box, and I didn’t find examples of anyone using similar layouts. So, I created my own approach which I am now sharing.
How to use Foreign Function Interface with Stack: Part I by Samuel Barr
I had previously written this functionality in C for a school project. I had heard of Haskell’s function interface before, and figured this would be a good opportunity to learn it.
Idempotent Applicatives, Parametricity, and a Puzzle by Daniel Mlot
Some applicative functors are idempotent, in the sense that repeating an effect is the same as having it just once. An example and a counterexample are Maybe and IO, respectively.
Nanosmos: Writing a simple text-editor with brick by Tom Sydney Kerckhove
In this post we will write a simple purely functional text editor using brick, building on the previous single-line text editor: picosmos.
Parsing JSON with more context by Benjamin Esham
Sometimes a library wants you to produce a value of type
t, but you’d like to have a value of type
eavailable when you do that and the API doesn’t offer a way to inject an
ein the right place.
The Compose Newtype and its Applicative Instance by Florian Beeres
This post will give you a quick overview of the
Composedata type and then explain how the applicative instance for that type works.
- Building a Bigger World
dynamic: dynamically typed programming made easy
- Finding Success (and Failure) in Haskell
- Idiomatic monads in Rust
- Monthly Hask Anything (April 2019)
- Proving Addition is Commutative in Haskell using Singletons
salak: Configuration (re)loader in Haskell.
- You Don’t Need to Be Brilliant to Do Brilliant Work
Package of the week
This week’s package of the week is
slist, a package that implements the
Slist data structure which stores the size of the list along with the list itself.