Newsletter
Issue 255 2021-03-18
Subscribe now! We'll never send you spam. You can also follow our feed. Read more issues in the archives.
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
-
Supercharge your handles with phantom types by Luc Tielen
In this article, I show how to use phantom types in combination with the “Handle pattern” to create more type-safe and user-friendly APIs in Haskell.
-
(((Wait a moment .) .) .) - Composing Functions with Multiple Arguments by Ubikium
A meme I saw reminded me of different ways to compose a function with more than one arguments before forwarding the result to other arguments.
-
Building a Web app with FP - Part IV - Testing Side effects by Iori Matsuhara
Whatever language you are using, testing side effects is always a bit tedious. In Haskell, there are many ways to handle this issue.
-
Contributions to GHC 9.0 by Sylvain Henry
This is my GHC activities report for GHC 9.0. If I’ve got the following script right, I’ve made 225 commits for the GHC 9.0 series at the time of writing.
-
Creating a Haskell Application Using Reflex. Part 1 by Nikita Anisimov
In this series of posts, we will describe how a Haskell web application can be developed using
reflex-platform
. -
Haskell
base
proposal: unifying vector-like types by Michael SnoymanToday, I want to focus in on one area with a concrete solution. And I’m choosing this because I think it’s an underappreciated problem, and one that we can actually solve, now that we have real collaboration between GHC, core library maintainers, and alternative prelude authors.
-
Using GHC low-latency garbage collection in production by Domen Kožar
In this post I’ll dive into how low-latency garbage collection (GC) has improved developer experience for Cachix users.
Jobs
Trying to hire a Haskell developer? You should advertise with us!
In brief
-
Async Control Flow by Matt Parsons
This post is an investigation of
persistent
issue #1199 where an asynchronous exception caused a database connnection to be improperly returned to the pool. -
The bottom of the Haskell Pyramid by Gil Mizrahi
I’ve decided to make a more modest list of things one should be familiar with to be productive with Haskell, the bottom of The Haskell Pyramid if you will, hoping it will help to focus learners of the language that might get loss in the vast amount of information.
-
Chat Wisely by Haskell Weekly Podcast
Special guests Michael Litchard and Brian Hurt talk with us about their new social networking site Chat Wisely. We hear about their experience using Haskell not only on the backend but also on the frontend through GHCJS.
-
Free book for subscribers by Julie Moronuki
As our latest Joy of Haskell monograph, Sockets and Pipes, is nearing completion, we have released the coupon that enables all Typeclasses members to download the book for free.
-
Functional Programming Leaders with Doug Beardsley by Compositional
This episode’s guest is Doug Beardsley, also known as mightybyte, director of engineering at Kadena, a blockchain company that uses Haskell in production.
-
Haskell Knowledge Map by Kowainik
Haskell has a lot of topics, and we arranged them by difficulty and timeline to help with your learning journey.
-
Haskenthetical update: user-defined macros by Phil Hazelden
A while back I wrote about Haskenthetical, a language that I’m implementing for fun. I’m still working on it, at least from time to time.
-
Haskellings Beta! by Monday Morning Haskell
This program is meant to be an interactive tutorial for learning the Haskell language. If you’ve never written a line of Haskell in your life, this program is designed to help you take those first steps!
-
Hyperfunctions by Donnacha Oisín Kidney
Check out this type:
newtype a -&> b = Hyp { invoke :: (b -&> a) -> b }
. This a hyperfunction, and I think it’s one of the weirdest and most interesting newtypes you can write in Haskell. -
Reddit Haskell Stats by Dan Fithian
Having posted a lot of blog entries to the Haskell Subreddit lately with mixed results, I wrote a script to gather all
/r/haskell
posts for the last year and visualize them. -
Through the Looking Class: Contravariant Functors and Applicatives by Siddharth Bhat
In this blog post, we will learn about
Contravariant
andDivisible
which provide duals forData.Functor
andData.Applicative
respectively. -
Tricks for Compilers in Haskell by Vanessa McHale
By making the abstract syntax tree polymorphic in the annotation type, we get type safety at all phases.
Show & tell
-
recover-rtti by Edsko de Vries
The main function in this package is
classify
, which looks at the GHC heap to recover type information about arbitrary values. -
relude version 1.0 by Dmitrii Kovanikov
Reexport libs entirely, GHC 9, official standard
-
singletons version 3.0 by Ryan Scott
I’m happy to announce the 3.0 release of the
singletons
library, as well as the debut of its companion libraries,singletons-th
andsingletons-base
.