Haskell Weekly

Newsletter

Issue 256 2021-03-25

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

  • 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.

  • toIntegralSized by 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 ImplicitParams by Chris Done

    Implicit parameters, enabled by the ImplicitParams extension 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.

Jobs

Trying to hire a Haskell developer? You should advertise with us!

In brief

  • 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.

  • Install GHC, Cabal and Haskell Language Server IDE on Windows 10 by Tom Ellis

    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. parsnip parses 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.

Call for participation