Newsletter
Issue 183 20191031
Subscribe now! We'll never send you spam. You can also follow us on Twitter or with 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

Compile your comments in ghcid by Jake Keuhlen
With a recent addition to ghcid, theres a new way to interactively play with code without having to have multiple windows open or jump back and forth between terminals.

Lowlatency garbage collector merged for GHC 8.10 by Ben Gamari
Over the past two years my colleague Ömer Sinan Ağacan and I have been working with our client, Standard Chartered, on a new lowlatency garbage collector for GHC.

Scraping Goodreads Sitemaps with Haskell by Marcus Buffett
Recently I acquired a project, Now What Do I Read?. One of the steps in acquiring the data was to scrape the sitemaps of Goodreads.

Types without values by Joël Quenneville
One helpful way to think about types is to consider its cardinality that is, how many possible distinct values does it have?

How does the continuation monad work? by Max Hallinan
I had trouble using the continuation monad until I understood how it works. Here is what I wish I knew from the beginning.

A monad is just a submonad of the continuation monad, what’s the problem? by Liyao Xia
The previous post showed off the flexibility of the continuation monad to represent various effects. As it turns out, it has a deeper relationship with monads in general.

Simon Marlow, Simon Peyton Jones, and Satnam Singh win Most Influential ICFP Paper Award by Facebook Engineering
The ACM Special Interest Group on Programming Languages (SIGPLAN) has awarded Facebook Software Engineer Simon Marlow, Microsoft Principal Researcher Simon Peyton Jones, and Google AI Software Engineer Satnam Singh the Most Influential ICFP Paper Award for their 2009 paper, Runtime Support for Multicore Haskell.
Jobs

Full Stack Haskell Software Engineer
Trying to hire a Haskell developer? You should advertise with us!
In brief

A basic Haskell solution to the robot journeys coding exercise by Mark Seemann
This article shows an idiomatic, yet beginnerfriendly Haskell solution to a coding exercise.

Applicative Without Currying by Chris Smith
If Haskell didn’t curry its functions, would we still care about applicative functors?

Copilot: A stream DSL for writing embedded C programs by Lee Pike
Copilot is a runtime verification framework written in Haskell. It allows the user to write programs in a simple but powerful way using a streambased approach.

Enum ranges by The Haskell Phrasebook
Haskell has a convenient notation for writing numeric ranges. It also works with a lot of types other than numbers, including types that you define yourself.

Getting Along with JavaScript by Vaibhav Sagar
I’m looking for something lighter that I can serve statically using GitHub Pages or Glitch, so I can plop some code on a webpage and never worry about hosting ever again.

Hadui: Web front UI for interactive Haskell stack projects by Compl Yue
The idea behind Hadui is rather simple, just to use a web browser in place of the traditional terminal based console UI.

Here You See the Small Porcupine Perched in Its Tree, Preparing and Crunching Some Data with Me by Yves Parès
So, long story short, Porcupine is a framework aimed at making longlived (in the sense that they are robust, shareable, and reusable), portable and customizable data pipelines.

Let’s read: Haskell Programming from First Principles, pt VI by Thomas Hartmann
Its been a while, but welcome back to yet another installment in our readthrough of Haskell Programming from First Principles. This time were looking at typeclasses.

Locally Nameless by Callan McGill
The untyped lambda calculus has a very simple grammar with just three term formers:
term ::= v  λ v . term  term term
. In order that this work as a theory of computation, we need some notion of evaluation and this is driven by βreduction. 
Temporal Difference Primer by Monday Morning Haskell
This week, we’re going back to “unsupervised” learning. We’ll consider another approach that does not require the specification of “correct” outputs.

TON: Is Haskell More Fun than FunC? by Kirill Elagin
Telegram Open Network is a relatively new smartcontracts platform developed by the team behind the Telegram messenger.

Using the Indexed State Monad and Dependent Types to represent a Game of Texas Hold Em by santiweight
One of the most important things we can have in a game of poker is safety players don’t expect to have a flop dealt after one has already been dealt.

eff
: screaming fast extensible effects for less by Alexis Kingeff
is a workinprogress implementation of an extensible effect system for Haskell, a generalpurpose solution for tracking effects at the type level and handling them in flexible ways. 
Dex: A research language for array processing by Dougal Maclaurin
The goal of the project is to explore: Type systems for array programming, Mathematical program transformations like differentiation and integration, and more.

Functional lenses through a practical lens by Sara Fransson
Surely something like this can’t be of interest for an everyday working programmer, trying to solve real world problems? Wrong!

Learning Haskell for Dummies  Lesson 5 by Vincent Orr
In this lesson we go through various equality operators and
Bool
s. AlsoOrd
for ordering and lastly “if then else”. 
Functional Reactive Programming by Haskell Weekly Podcast
Jose Silvestri and Dustin Segers give a whirlwind tour of FRP, exploring what it is and why you might want to use it.
Package of the week
This week’s package of the week is relude
, an alternative prelude library. If you find the default Prelude
unsatisfying, despite its advantages, consider using relude
instead.
Call for participation
Looking for something to work on? Browse Haskell Hacktoberfest issues on GitHub.