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 8.8.1 released by Ben Gamari
The GHC team is very pleased to announce the reelease of GHC 8.8.1. This release is the culmination of over 3000 commits by over one hundred contributors and has several new features and numerous bug fixes relative to GHC 8.6.
cabal-install 126.96.36.199 released by Mikhail Glushenkov
Legacy commands are now only accessible with the
v1-prefixes, and the
v2-commands are the new default.
HSoC — Hadrian Optimisation: Final Report by James Foster
This project was all about trying to optimise Hadrian, the new build system for GHC which uses Shake instead of Make, with the hope being that faster build times helps GHC devs, which in turn helps everyone in the wider community that uses GHC.
Haskell-y Ever After: Summer Tales for Every Full-stack Developer (Part Two) by Andika Demas Riyandi
A Google Summer of Code’s student story about implementing Haskell on the Hackage Matrix Builder’s frontend application using Functional Reactive Programming approach.
Building a Blog in Haskell with Yesod–Giving Back by Riccardo Odone
This is a series about Yesod: a Haskell web framework that follows a similar philosophy to Rails. In fact, it is strongly opinionated and provides a lot of functionality out of the box.
PatternSynonyms for expressive code by Raghu Kaippully
PatternSynonyms is a very handy GHC extension to abstract away some implementation details of your data types and present a cleaner interface to the rest of the code.
Functional Dependencies & Type Families by Gabriel Volpe
Probably the coolest stuff has been about Functional Dependencies and Type Families, so this is my attempt to explain it in order to gain a better understanding and hopefully help someone else out there as well.
Automatic White-Box Testing with Free Monads by Alexander Granin
Automatic creation of regression tests by designing a system that records the input, output and side-effects of a business application in production.
Fixed Points and Non-Fixed Points of Haskell Functors by Ziyang Liu
I’ve been playing with fixed points of Haskell functors lately and thought it would be useful to write down some of my thoughts, both to solidify my understanding and for future reference.
Customizable Datatypes by Michail Pardalos
This pattern allows parameters to be added in an easy way without cluttering up type signatures and has helped clean up a lot of code.
Trying to hire a Haskell developer? You should advertise with us!
Final Report: Dhall Language Server by Frederik Ramcke
This is my final report as part of GSoC 2019, working on the Dhall language server.
How to Use Fzf in GHCi by Vanessa McHale
I use fzf when I’m on the command-line. To configure GHCi to use fzf instead of haskeline’s built-in search …
Haskell. History of a Community-Powered Language by Denis Oleynikov and Gints Dreimanis
Here, we focus on the history of Haskell, the main programming language at Serokell. We have decided to highlight only the most important milestones, so no lengthy paragraphs and descriptions this time.
What is your opinion on how to make Haskell more popular? by Dmitrii Kovanikov
I believe we all will be happy if the language would be more widespread, there would be more Haskell job opportunities, and more people would be working on improving the ecosystem.
Kei Language by Tiago Campos
Kei is a dependently typed language with a small and expressive core based on λΠ-calculus modulo rewriting.
I knew that GHCJS-produced code is slow, but how slow? Compared to native code? That’s what this post is about.
Haskell editor / IDE setup by Răzvan Flavius Panda
Instructions for setting up Haskell editors/IDE
Opinion piece on GHC backends by Andreas Klebinger
There is a never ending discussion about using llvm vs the default backend. So here is a quick recap of what we are talking about and my opinions on the matter.
Static Smart Constructors with Double Splices by Chris Done
Sometimes you’re making a DSL and you need a way to make a smart constructor that is static.
Can we call a function a googol times? by Victor Maia
Yes, this is about optimal reductions!
Millismos: Writing a simple forest-editor with brick by Tom Sydney Kerckhove
With the new cursor as defined in the previous poss about forest cursors we can take the next step towards making a Purely Functional Semantic Forests Editor like Smos.
Haskell zine: functions by Alicja Raszkowska
Package of the week
This week’s package of the week is sliceofpy, a library that provides Python-ish slicing traversals for Haskell.