Issue 63

Welcome to another issue of Haskell Weekly! Haskell is a purely functional programming language that focuses on robustness, concision, and correctness. This is a weekly summary of what’s going on in its community.

Featured

  • GHC 8.2.1 release candidate 3 available

    This release candidate fixes a number of regressions from 8.0.2 found in release candidate 2, as well as a major correctness bug present in several previous GHC major releases. Users taking advantage of parallelism in their programs will be strongly encouraged to upgrade to 8.2.1 once it is released.

    Editor’s note: Use this stack.yaml to test GHC 8.2.1-rc3 with Stack.

  • Stack’s new extensible snapshots

    There is a collection of features in Stack that have been added in bit by bit, as opposed to being designed into a cohesive whole from the start. The features work, but could be a bit better. We’ve known for a while that, instead of putting in place strategic fixes, a more general refactoring of the core dependency management logic was in order.

  • ZuriHac 2017

    Videos of the Haskell keynotes from ZuriHac, the Zurich Haskell hackathon. Includes presentations from Edward Kmett, Stephen Diehl, Simon Thompson, Neil Mitchell, and Julie Moronuki.

  • Front Row is hiring a senior backend Haskell engineer (ad)

    Come change how 6.5+ million K-12 US students learn Math, Language Arts, Social Studies and more. Use data, advanced type systems, great product design and deep pedagogy to change lives.

  • Iterators and streams in Rust and Haskell

    Real streaming data is handled at the library level in Haskell, with many different options available. Rust does things differently: it bakes in a concept called iterators not only with the standard library, but the language itself: for loops are built-in syntax for iterators.

  • Introducing Vaultenv: Keeping your secrets secure with Vault and Haskell

    We’re pleased to announce our first bit of open source code. It is a CLI utility that fetches secrets from the HashiCorp Vault secret store. It makes secrets available using environment variables to a process of your choosing.

  • Danger and HLint

    Danger is a Ruby gem that you can use on your continuous integration process to automate code reviews. Danger can automatically go through the code in a an open pull request and check if it respects the rules your team and you have established.

  • Reader monad part 2

    In part 1 I went over the basics of the reader monad. In this post I’ll cover some more advanced topics and alternatives to the reader monad.

  • Encoding objects

    Objects can be thought of as Mealy machines of effects, and their Haskell encoding is actually straightforward. This novel building block might be too strong to use everyday, but I’m pretty sure there are places where this abstraction fits well, like game programming.

  • Playing match maker

    So at this point, are we condemned to choose between a fast inaccurate algorithm and a correct but slow one? In this case the answer is no! This problem is actually best solved by using a graph algorithm!

Package of the week

This week’s package of the week is Solga, a library for easily specifying web APIs and implementing them in a type-safe way.

Call for participation

Are you interested in contributing to open-source Haskell projects but not sure where to start? Here are some tasks from the Haskell community for you to pick and get started!

Email [email protected] with your beginner-friendly issues to get them included.

In brief