Issue 156 2019-04-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.
GHC 8.6.5 released by Ben Gamari
The GHC team is proud to announce the release of GHC 8.6.5. This release fixes a handful of issues with 8.6.4.
Continuous improvement with hlint code smells by Ben Weitzman
hlint is an amazing tool for catching all sorts of little Haskell code improvements, but it didn’t catch all of the issues I wanted it to. So I decided to extend hlint with the ability to detect certain code smells.
Demystifying folds with ghci by Ayman Nadeem
Implementing folds can be tricky, brain-bending conquests in Haskell. This becomes all the more challenging in domains where associativity and strictness properties are less straightforward, such as when writing Template Haskell.
Rewriting functions with fold and reduce by Max Strübing
How to use fold and reduce to rewrite any function that operates on lists.
Backwards Compatible Configuration with Constraint Kinds by Travis Whitaker
A changing schema presents challenges at large scales in the form of database migrations or ETL, and anyone who has worked in data science has an idea of how much time this can consume.
Exploring Nix & Haskell Part 3: Less Nix, More Reflex by Christian Henry
In this post we’ll start with a project based off reflex-project-skeleton and remove/add bits and pieces to it until we have a deployable application with a prescribed IDE experience and workflow.
Haskell Integer to English by Ben Wiener
Inspired by a programming interview question I heard about, here’s some cute code I wrote for converting (positive) integers to words.
Type-Enforced Exponential Trees by Mitchell Vitez
We’re going to attempt to make it impossible for anyone to construct an invalid tree with the tree type we come up with.
Stackage changes and Stack 2 by Michael Snoyman
We’re ramping up for the Stack 2 release, which contains a number of changes.
Recently something caught my eye while hacking on a Haskell project. Pay attention to the
memptyin the code fragment below: …
either mempty pure…
Including but not limited to: Software Engineers/Researchers, Project Managers, Hardware Engineers, Red Team Lead, Software Integration Engineer.
We collaborate with organizations like NASA, DARPA, and AWS to explore blue sky ideas and turn them into usable technology. Some of the things we’ve worked on in the past: Formal methods, static analysis, cryptographic algorithms, abstract interpretation, type theory, formal verification, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, and statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome; see lifeatgalois.com.
- Applicative monoids
- cabal-cache: Tool for caching packages
- Competitive Programming in Haskell: Basic Setup
- Serializing Mazes!
- Zero Bullshit Haskell
Package of the week
This week’s package of the week is ptGHCi, an interactive command shell for Haskell designed for high-productivity interactive coding. It is implemented as a wrapper around GHCi based on Python’s
prompt-toolkit library and heavily inspired by IPython.