Issue 162
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
-
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.
-
Property-Based Testing in a Screencast Editor, Case Study 3: Integration Testing by Oskar Wickström
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 theimplementations
of 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
(<>)
s,mconcat
s, andshow
s 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.
Jobs
-
Galois is hiring for a variety of roles (ad)
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!
In brief
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.
Call for participation
Events
North America
- 2019-06-06 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-06-08 in Norcross, GA, USA by Atlambda Haskathon: Atlambda Haskathon
- 2019-06-08 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out + short talk (topic not yet announced)
- 2019-06-08 in Berkeley, CA by Code Self Study: Open Programming Session (Saturday Afternoon)
- 2019-06-09 in San Francisco, CA, USA by Queerious Labs: Haskell for Beginners
- 2019-06-09 in West Des Moines, IA, USA by Des Moines Haskell Study Group: (West DSM) Week 4. Types and Typeclasses. (Review ch. 4 & 5 plus ch. 6)
- 2019-06-10 in Irvine, CA by Orange Combinator - Functional Programming In OC: The Weekly Function
- 2019-06-10 in Pittsburgh, PA, USA by Pittsburgh Functional Programming Meetup: Baby’s First Parser Combinator with Haskell and Trifecta
- 2019-06-11 in Brooklyn, NY, USA by New York Haskell Users Group: Parallel and Concurrent Haskell Reading Group
- 2019-06-11 in Santa Monica, CA, USA by Santa Monica Haskell Users Group: Haskell Hack Night
- 2019-06-11 in Denver, CO, USA by DenverFP: Intro To Functional JavaScript
- 2019-06-11 in Vancouver, BC, Canada by Functional Programming Vancouver: Functional Programming Meetup
- 2019-06-12 in Tucson, AZ, USA by Tucson Functional Programmers: Monthly Get Together
- 2019-06-12 in Austin, TX, USA by Austin.Elm: Elm Hack Night at Lunar Collective
Europe
- 2019-06-06 in Düsseldorf, Germany by Clojure Düsseldorf: Fn-fx: JavaFX GUIs in Clojure (mit Chris Rutenkolk)
- 2019-06-06 in Madrid, Spain by Madrid Haskell Users Group: Programación genérica (generics) en Haskell
- 2019-06-07 in Wien, Austria by Vienna Haskell Exchange Meetup: Generating Juggling Diagrams
- 2019-06-10 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Parallel and Concurrent Programming Study Group
- 2019-06-11 in Newcastle Upon Tyne, United Kingdom by Functional Programming North East: Modern authentication for your functional applications
- 2019-06-11 in Bristol, United Kingdom by CodeHub Bristol: Hack Night
- 2019-06-11 in Montpellier, France by Functional Programming Montpellier: Functional programming in JS & Haskell en vrai
- 2019-06-12 in Leeds, United Kingdom by Code & Coffee (Leeds): Code & Coffee
- 2019-06-12 in Berlin, Germany by Berlin Haskell Users Group: Haskell Wednesday
- 2019-06-12 in Dublin, Ireland by Clojure Ireland: Open Forum on Clojure
- 2019-06-12 in Firenze, Italy by Develer Meetup: Programmazione funzionale con Haskell
South America
- 2019-06-06 in Santiago, Chile by Santiago Scala Meetup: Santiago Scala Meetup
Africa
- 2019-06-08 in Cape Town, South Africa by Cape Town Functional Programmers: The sound of Rust
- 2019-06-10 in Sandton, South Africa by Lambda Luminaries: Fun with F# Type Providers
Oceania
- 2019-06-11 in Brisbane, Australia by Brisbane Functional Programming Group (BFPG): BFPG Monthly Meetup
Asia
- 2019-06-11 in Singapore, Singapore by HASKELL.SG: June Singapore Haskell Meetup