Issue 167
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
-
Haskell - An Experience Summary by Holmusk
Holmusk is a digital healthcare startup based in Singapore with a focus on mental health and chronic conditions. Approximately a year ago, we chose to begin the process of migrating our backend into Haskell. As of March 2019, Holmusk is now powered fully by Haskell and this post is a summary of our experiences so far.
-
Animation DSL With Effect Handlers by Ruben Pieters
In this post we will take a look at a domain-specific language (DSL) for creating interactive and composable animations. At its core, the DSL is based on an effect handler (or free monad) approach with a slight twist.
-
Haskell and GHC’s primitive operations by Csaba Hruska
My current adventures involve GHC primitive operations or primops in short. First of all, let’s see how GHC primops relate to the Haskell language. One might think that the Haskell language is defined by the Haskell Language Report, but that would be a false assumption.
-
Improvements in GHC’s testsuite infrastructure by Ben Gamari
GHC’s testsuite is our first line of defense against correctness regressions. However, as is often the case, the infrastructure that keeps it running has been long neglected.
-
Refine, fine, fine by Daniel J. Harvey
About a month ago I gave a talk about Refined types at a React meetup. Needless to say, it was a resounding success so I thought I would share an adapted version of the slides so that you can all learn to be as learned as me when it comes to such a topic.
-
Simplifying typeclasses by Daniel Smith
The current implementation of typeclasses in GHC/Haskell is quite complex, as they have a variety of different features. A small portion of these features are fundamental to typeclasses and cannot be removed, but many of these features already exist in other forms in Haskell, and those other forms should be used instead.
-
The surprising rigidness of higher-rank kinds by Ryan Scott
Higher-rank kinds are more rigid than higher-rank types are, and this makes them trickier to use. In this post, I will explore this claim in further detail and try to shed some light on what I believe to be a feature of GHC that has languished in obscurity.
-
Tracing User Requests in Yesod by Jezen Thomas
Recently I decided I want to invest in my Yesod application’s logging system. Yesod provides sane defaults for logging using the Apache style and this is enough for most applications, however in my case I had a few extra demands.
-
Worldwide Haskell Collaboration by Sandy Maguire
I’m in the beginning stages of planning a trip around the world. The goal is to wander from place to place, meeting cool Haskellers and collaborating together on whatever project we’re most excited about
Jobs
-
Galois is hiring for a variety of roles (ad)
Including but not limited to: Software Engineers/Researchers, Project Managers, Hardware Engineers, 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
- Functional DevOps in a Dysfunctional World
- Google Summer of Code: Chebyshev approximations in Haskell
- HSoC — Hadrian Optimisation: Update 3
- Idris 2 pre-alpha
- Lightweight invertible enumerations in Haskell
- Multi-stage docker build of Haskell webapp
- Payment types catamorphism
- Preparing for Simulation: Player AI
- Ten years of TidalCycles
- th-test-utils v1.0.0 release: testing Quasiquoters / Template Haskell functions
- Two new Haskell Symposium papers
Package of the week
This week’s package of the week is pandoc-markdown-ghci-filter, a Pandoc filter to evaluate Haskell code in Markdown and auto-embed the output.
Call for participation
Events
North America
- 2019-07-11 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-07-11 in Las Vegas, NV, USA by Las Vegas Functional Programming User Group: Functional Programming Meetup
- 2019-07-11 in Jacksonville , FL, USA by Jax.Ex: Connect Amazon RDS to an Elixir/Phoenix Web App, and more!
- 2019-07-11 in Madison, WI, USA by Madhackers: hack night
- 2019-07-12 in Austin, TX, USA by Austin Types, Theorems, and Programming Languages: Going through Software Foundations by Benjamin Pierce et al
- 2019-07-13 in San Diego, CA, USA by San Diego Software Development Deep Dive: Diving deeper into software development discussions
- 2019-07-13 in Norcross, GA, USA by Atlambda Haskathon: Atlambda Haskathon
- 2019-07-13 in Berkeley, CA by Code Self Study: Open Programming Session (Saturday Afternoon)
- 2019-07-13 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out + short talk (topic not yet announced)
- 2019-07-15 in Irvine, CA by Orange Combinator - Functional Programming In OC: The Weekly Function
- 2019-07-15 in Lehi, UT, USA by Utah Haskell: Utah Haskell Meetup | Book Club
- 2019-07-15 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Practice Track - Parallel and Concurrent Programming in Haskell
- 2019-07-16 in Minneapolis, USA by HaskellMN: HaskellMN Monthly Meetup
- 2019-07-16 in Carmel, USA by Indy FP: Machine Learning, Parsing, and Zippers: Derivative Works in Computer Science
- 2019-07-17 in Berkeley, CA by Code Self Study: Open Programming Session (Wednesday, Berkeley)
- 2019-07-17 in Asheville, NC, USA by Asheville Coders League: Weekly Low-Pressure Social Get Together
- 2019-07-17 in Seattle, WA, USA by Beerly Functional: Think Functionally
- 2019-07-17 in St. Louis, MO, USA by Haskell Users Group: St. Louis: Hacking on: Building a console app in Haskell
- 2019-07-17 in Portland, OR, USA by Portland Elixir & Erlang User Group: Monthly Meeting – Presentations of Elixir, Erlang and related technologies
- 2019-07-17 in Houston, TX, USA by Houston Functional Programmers: How to build smart touchscreen kiosks using Elixir
- 2019-07-17 in Arlington, VA, USA by Haskell DC: July Meetup: Functors of the World, Unite!
- 2019-07-17 in Philadelphia, PA, USA by Serverless PHL: Serverless Failure Day: Lessons learned from serverless failures
- 2019-07-18 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-07-18 in San Diego, CA, USA by San Diego Functional Programmers: July Meetup - Haskell: From 30,000 Feet
Europe
- 2019-07-11 in London, United Kingdom by Hoodlums: Hoodlums Meetup
- 2019-07-17 in Bristol, United Kingdom by Bristol Clojurians: Clojure Study Group
- 2019-07-17 in Genève , Switzerland by Gōng-fu I/O ‹Creative Coders› Geneva: Gōng-fu I/O Weekly #376
- 2019-07-17 in Prague, Czech Republic by ElmPrague: ElmPrague at elm Europe 2019
South America
- 2019-07-11 in Santiago, Chile by Santiago Scala Meetup: Santiago Scala Meetup
Oceania
- 2019-07-15 in Perth, Australia by Perth Functional Programmers: Haskell meetup
- 2019-07-16 in Christchurch, New Zealand by Functional Christchurch: Functional Programming
- 2019-07-17 in Canberra, Australia by CanFP - The Canberra Functional Programming Group: CanFP Monthly meetup