Newsletter
Issue 205 2020-04-02
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
-
Introducing Halogen Hooks by Thomas Honeyman
Hooks are a better alternative to higher-order and renderless components, and they offer a more convenient way to write many ordinary Halogen components.
-
The Cabal/Stack Disambiguation Guide by Merijn Verstraaten
I will hope to eliminate the confusion that many of the askers seem to have about the various different things named “cabal” and how they relate to each other and stack.
-
Eager vs. Lazy Instantiation: Making an Informed Decision by Gert-Jan Bottu
This discussion serves as a great showcase for how language design works in practice: it is a hard and involved process where not everyone will agree on the same answers.
-
Lazy Streaming With a C API by Vanessa McHale
Streaming via a C API presents a conundrum in Haskell: on the one hand, the C code is side effecting, on the other, we would like to provide a lazy API.
-
Lucid: Another HTML Option by Monday Morning Haskell
We’ve already explored how to do this a bit in Reflex FRP and using the Blaze library. This week, we’ll consider one more library, Lucid.
-
Migrating from QuickCheck to Hedgehog: mixed results by Fraser Tweedale
In this post I will explain the catalyst and the results of the switch including a surprising and (for me) detrimental behavioural difference between QuickCheck and Hedgehog.
-
The onboarding process demands an academic’s exploration and synthesis. Not everyone has a researcher’s mindset.
-
Overriding Type Class Instances (Part 2) by Cary Robbins
In most cases, we likely won’t be able to tamper with the source code to inject our override machinery. Furthermore, we’d like to be able to achieve this with as little boilerplate as possible.
-
Repeatable execution in Haskell by Mark Seemann
This article is part of a series of articles about repeatable execution. The previous article argued that if you’ve logged the impure actions that a system made, you have enough information to reproduce what happened.
-
A Tip for Profiling GHC by Matthew Pickering
In this post I will describe quite an ergonomic way of profiling any merge request without having to build the branch yourself from source or in any special mode.
Jobs
- Interos is Hiring Full Stack Haskell Software Engineers (ad)
At Interos, we are disrupting the way Fortune 500 companies and government agencies identify and respond to risk within their supply chains. We deliver the data and insights to business leaders that help them identify, visualize and understand the ripple effects that could impact their supply chains, before they happen. Recently funded by Kleiner Perkins and pivoting to an automated solution, Interos is in essence, a start-up SaaS environment.
Trying to hire a Haskell developer? You should advertise with us!
In brief
-
30 years of Haskell by Joachim Breitner
Vitaly Bragilevsky, in a mail to the GHC Steering Committee, reminded me that the first version of the Haskell programming language was released exactly 30 years ago.
-
Idris 2 version 0.1.0 Released by Edwin Brady
This is a complete reimplementation of Idris, written in Idris 1.
-
Monthly Hask Anything (April 2020)
This is your opportunity to ask any questions you feel don’t deserve their own threads, no matter how small or simple they might be!
Show & tell
-
acme-dont version 1.2 by Jack Kelly
acme-dont provides a
don't
function, which does not execute its argument. -
aeson-schemas version 1.1.0 by Brandon Chinn
Easily consume JSON data on-demand with type-safety.
-
constrained-normal by Neil Sculthorpe
Normalised Deep Embeddings for Constrained Type-Class Instances
-
covideo19 by Julien Dehos
Quick & dirty screencast program.
-
esqueleto version 3.3.0 by Matt Parsons
Type-safe EDSL for SQL queries on persistent backends.
-
eventlog2html version 0.7.0 by Matthew Pickering
A tool for creating interactive visualisations of eventlogs.
-
haskell-android-sdl by Allen Haim
A framework for Haskell apps on mobile.
-
shake-bindist by Vanessa McHale
Pack files into a binary distribution.
-
shopping-cart-haskell by Gabriel Volpe
Haskell version of the Shopping Cart application developed in the book “Practical FP in Scala: A hands-on approach”
-
summoner version 2.0.0.0 by Dmitrii Kovanikov
Tool for scaffolding batteries-included production-level Haskell projects.