Newsletter
Issue 113 2018-06-28
Subscribe now! We'll never send you spam. You can also follow our feed. Read more issues in the archives.
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.
Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.
Featured
-
Rethinking static reference tables in GHC
Recently I was lucky enough to be able to finish a project I’ve been working on intermittently in GHC for several years, and the result was satisfyingly better on just about every axis.
-
QuantifiedConstraints
and the trouble withTraversable
I will show how Representational1 lets us derive two more classes in the
base
library using GND, which would be impossible without the use ofQuantifiedConstraints
. -
Two security holes and a new library
For the past week and a half, I’ve been working on embargoed security holes. I’m announcing a new Haskell library,
http-client-restricted
, which could be used to avoid similar problems in other programs. -
Coercions and roles for dummies
You’ve heard of the type system, which makes sure your terms are sane. Maybe you’re also aware of the kind system, whose job it is is to make sure your types are reasonable! But did you know Haskell has an even more obscure system than these?
-
Selective applicative functors
In this blog post I’ll explore what I call selective applicative functors, which extend the
Applicative
type class with a single method that makes it possible to be selective about effects. -
How to build a custom GTK widget with Haskell
Gifcurry, a cross-platform GIF creator slash video editor made with Haskell, needed a custom widget to interface with user selected time slices.
-
In my efforts to speed this implementation up, I came across a wide and interesting literature on scheduling effects, which I’ll go through a little here.
-
Pragmatic Haskell 2: IO Webservant
In this blog post the simple web server will get an extra REST endpoint that can do IO actions. This is an important part of pragmatic Haskell programming. Without IO our program can do nothing.
-
Nix scaffolding for running Haskell plugins
I am writing plugins which don’t change the semantics of my programs but are useful for debugging. I only sometimes want to run them and don’t want them to appear as dependencies at all on Hackage.
-
Deriving Vinyl representation from plain Haskell records
Can we do better? For instance, can we just say something like
deriveVinyl ''UserT
and have a type class instance generated for us automatically?
Jobs
-
Backend software engineer at SimSpace in Boston
SimSpace is looking for a backend software developer to help shape the future of realistic environments used for cyber security development, testing, and training.
-
Our team supports firmware and software development for Tesla products through custom tooling, process optimization, and data integration.
In brief
- 8-hour remote interactive course on “Type-level programming with GHC”
- Cachix: Build Nix packages once and share them for good
- Contributing to GHC 3: Hacking syntax and parsing
- Domain modeling with abstract algebra
- FHPC18 call for presentations and demonstrations
- Fold: HaskellRank #05.1 (video)
- Haskell: Build tools
- How I finally learned what a “monad” is
- Introduction to Haskell: Why you should learn it if you are a Javascript developer
- Literature review of GHC Core (pdf)
- Monads and more in 5 minutes or less
- The Haskell stack ecosystem in 30 seconds or less
- Using mutable global variable in Haskell
- We liked it so we put a lens on it
- Why laziness matters
- ZuriHac 2018: Haskell keynotes (video)
Package of the week
This week’s package of the week is scientific, a library that provides space-efficient scientific numbers