Issue 256 2021-03-25
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.
Welcome to the Haskell Foundation! by Andrew Boardman
Some of what we’re working on is basic non-profit paperwork, getting payroll up and running, boring but important stuff. Let’s get into the fun stuff.
An introduction to typeclass metaprogramming by Alexis King
This blog post attempts to remedy that by providing an overview of the foundational concepts behind typeclass metaprogramming.
Comparing Elm with Reflex by Volodya Kalnitsky
This post deals with two essentially different approaches to reactive programming. Elm, unlike Reflex, is a separate language, not a library, which is why it’s not quite correct to compare them.
Custom monad with servant and throwing errors by Magnus Therning
A few weeks ago they started weighing on me though and I decided to look into servant and since I really liked what I found I’ve started moving all projects to use servant.
Encoding Effects using freer-simple by Juan Pablo Royo Sales
After trying different approach and libraries for encoding and handling effects in production systems, I would like to explain my experience using freer-simple which is one of my favourite and also the one that I am currently using.
Hasura 2.0 Engineering Overview by Phil Freeman
I’m going to talk about the software engineering tasks we tackled, challenges we encountered and how we met them.
Many faces of Internal Functions by Veronika Romashkina
In Haskell, there are different ways to define and use functions. And working with HOF often requires creating some “internal” functions for passing them as arguments to other functions.
toIntegralSizedby Type Classes
The greatest redeeming quality of numbers is the sense of possibility conveyed by the unlimited expanse of the number line — But machines mute even this glimmer of hope, offering instead a dim and claustrophobic view.
What’s wrong with
ImplicitParamsby Chris Done
Implicit parameters, enabled by the
ImplicitParamsextension in GHC, often come up in Haskell discussions, with the statement that they’re so convenient, yet nobody seems to use them. Why is that?
Who still uses ReaderT by Hugo Peters
After some experience digging around in the IHP codebase, which makes liberal use of the Implicit Parameters language extension, I’ve come to conclude that a monad stack with just a ReaderT can be simplified.
Trying to hire a Haskell developer? You should advertise with us!
Building a Web app with FP - Part V - Configuration with Dhall by Iori Matsuhara
We haven’t talked about configuration yet. Most of our app parameters are hard coded, and it’s time to solve this issue. The goal for this article is to be able to configure our application with a configuration file.
Diagrams for Penrose Tiles by Chris Reade
I thought Haskell diagrams would be helpful here, and that turned out to be an excellent choice.
Free Course On Functional Programming in Haskell by Nikos Vaggalis
Videos from an introductory course by Professor Graham Hutton from the University of Nottingham have been made freely available on YouTube.
How Dyre works with Cabal Nix-style builds by Fraser Tweedale
As a result of the experience I decided to write this post about how Nix-style local builds work, and how Dyre works with programs built and installed that way.
Tilapia is an effort to improve all the interfaces between Haskell and the programmers who use it.
Unified Vector by Haskell Weekly Podcast
Byte string, text, and vector, oh my! This week we review Michael Snoyman’s proposal to unify vector-like types. Learn about boxed versus unboxed values, pinned versus unpinned memory, and more.
Show & tell
parsnip by Edward Kmett
A fast, minimal parser.
parsnipparses null-terminated input strings with an absolute minimum of internal state.
QualifiedImportsPlugin by Utku Demir
The “proper” solution would be to improve the module system to allow qualified exports, but meanwhile I wanted to avoid having to repeat the same qualified import lines on each module, so I spent some time to write a GHC plugin which inserts available common qualified imports automatically.