Issue 113
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
Call for participation
- nvim-hs: Make
Neovim.Debug
module useful again - rhine: Silence all warnings
- stocks: Handle connection/404 errors
Events
- June 28 in Melbourne, Australia: Custom IHaskell on My Binder
- June 30 in Boston, Massachusetts: Hang out, chat FP, work on some code
- July 1 in Bangalore, India: Haskell: Folds and type classes
- July 2 in St. Louis, Missouri: Mob programming with Elm
- July 3 in Seattle, Washington: Haskell learners’ group
- July 4 in Dublin, Ireland: Self-paced Haskell study group with special talk
- July 5 in Frankfurt, Germany: Dhall: The functional configuration language
- July 16 in Auckland, New Zealand: Two Talks: FP in JS-land; and The unusual effectiveness of the Haskell type system