Issue 162 2019-06-06
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.
GitHub’s Semantic: Why Haskell? by Timothy Clem
Semantic is written in Haskell and we expect newcomers to the code base to have one of two reactions: “That’s so cool!” or “Why Haskell?”. This document is primarily addressed to the latter inquiry.
This is the final case study in the “Property-Based Testing in a Screencast Editor” series. It covers property-based integration testing and its value during aggressive refactoring work within Komposition.
Polysemy Internals: Freer Interpretations of Higher-Order Effects by Sandy Maguire
This is the first post in a series of implementation details in
polysemy— a fast, powerful and low-boilerplate effect-system library. Even if you’re not particularly interested in polysemy, there are some functional pearls here — and a crash course on the history on the
implementationsof free monads in Haskell.
String interpolation and overlapping instances 101 by William Yao
Are you frustrated trying to do any kind of string manipulation in Haskell? The same kind of interpolation or string building that would require zero thought in other languages seems to always turn into a mess of
shows in vanilla Haskell.
Either catamorphism by Mark Seemann
This article is part of an article series about catamorphisms. A catamorphism is a universal abstraction that describes how to digest a data structure into a potentially more compact value. This article presents the catamorphism for Either (also known as Result), as well as how to identify it.
Have GHC parsing respect dynamic pragmas by Shayne Fletcher
Our parse-fu needs an upgrade to respect dynamic pragmas and that’s what this post provides.
Elminator: a Haskell to Elm code generator by Sandeep C.R.
If you are using Elm on the front end for Haskell web applications, then Haskell to Elm code generators are probably an important part of your infra.
Compatibility packages by Oleg Grenrus
Supporting wide (version) ranges of dependencies is a common problem in software engineering. In particular, supporting many major GHC versions is sometimes tricky. In my opinion it’s not because Haskell-the-language changes, very few extensions are essential for library-writing. A tricky part is the changes in the so called boot libraries.
Fighting Back! by Monday Morning Haskell
In last week’s article, we made our enemies a lot smarter. We gave them a breadth-first-search algorithm so they could find the shortest path to find us. This made it much harder to avoid them. This week, we fight back! We’ll develop a mechanism so that our player can stun nearby enemies and bypass them.
GHC LLVM LTO Experiments Scratch Notes by Brandon Simmons
The goals were to play with some new tech and possibly discover some significant performance gains (without thinking very hard) that could be ported back or realized in a less hacky way.
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.
Trying to hire a Haskell developer? You should advertise with us!
Package of the week
This week’s package of the week is GitHub’s Semantic, a library and command line tool for parsing, analyzing, and comparing source code.