Issue 236 2020-11-05
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.
- 2020 State of Haskell Survey by Haskell Weekly
The goal of this survey is to better understand what people think of the Haskell programming language, together with its ecosystem and community. Whether you have never used Haskell or you use it every day, we want to hear from you!
Haskell Foundation by Simon Peyton Jones
The Haskell Foundation (HF) is an independent, non-profit organization dedicated to broadening the adoption of Haskell, by supporting its ecosystem of tools, libraries, education, and research.
Making a small game with Gloss by Claes-Magnus Berg
Making a game, even if you have no intention of making it real and finishing it, is good practice in any programming language.
Advent of Haskell 2020 by Antei & Konfy
Advent of Haskell is an advent calendar filled with content created by the Haskell community.
Composable filters using Witherable optics by Chris Penner
As it turns out, optics have a lot of different “slots” where we can experiment with different data types and constraints to get new results.
Create a Windows installer for your Haskell project by Iori Matsuhara
In this blog post, I’ll try to explain how you can create a really simple installer for your Haskell software on Windows and how to deal with external dependencies.
Episode 29: Bad Parts by Haskell Weekly Podcast
Even well-designed languages have rough edges. Cameron Gera and Taylor Fausak review some of the bad parts of Haskell.
Haskell: The Good Parts by Marc Scholten
Here are some of the best parts we encountered while using Haskell at digitally induced.
JSON Parsing from Scratch in Haskell: Error Reporting — Part 2 by Abhinav Sarkar
In this post, we’ll finish adding simple but useful error reporting capability to our JSON parser.
Names are not type safety by Alexis King
Newtypes are useful when carefully applied, but their safety is not intrinsic, no more than the safety of a traffic cone is somehow contained within the plastic it’s made of.
Your orphan instances are probably fine by Michael Peyton Jones
With a little bit of care, we can use orphans quite safely so long as we can avoid the problematic cases.
Trying to hire a Haskell developer? You should advertise with us!
A boring Haskell script by Julie Moronuki
Here, I want to show you a small script that I used to generate package override files for a project I was building with
Can We Have Exhaustive Return Warning? by Alistair Burrowes
A function like this will also need to be updated, however in this case the compiler won’t help us.
ghc-lib-parser module count by Shayne Fletcher
The build time for ghc-lib-parser is proportional to the number of modules that it contains, the less there are the faster it builds.
This is a tutorial on how Agda infers things.
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!
Profunctor Decoders? Optical Decoders? by Jack Kelly
I started out fiddling with profunctors and arrows, but it morphed into something more lenslike for a while.
Sequencing Exercises in the Watcher by Monday Morning Haskell
Our watcher will focus on one specific “current” exercise. When we’re done with that, it will move us on to the next one automatically!
A story of an arrow and a comma by Murat Kasimov
In this article I’m going to show you what are adjoint functors about through real programming examples.
Transparency by Michael Snoyman
I truly believe people are trying to improve Haskell community processes right now.
Whole Haskell is Best Haskell by Ashley Yakeley
To take full advantage of what Haskell has to offer, you have to embrace the whole language.
Why I prefer functional programming by Gabriella Gonzalez
This post explains why I stick with functional programming, using a rationale that a non-functional programmer can relate to.
Show & tell
A small library that adds feature flags to a WAI application.