Newsletter
Issue 119 2018-08-09
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.
Featured
-
The latest official version of the Haskell standard was published in 2010. Since then, GHC, the most popular Haskell compiler, has grown almost 100 extensions which modify the language, sometimes quite drastically.
-
Data-parallel rank-select bit-string construction
In this post, I demonstrate how use broadword programming techniques to exploit data-level parallelism in the parsing of a CSV-like format. Doing so allows us to parse the text 8-bytes at a time instead of one byte at a time as a traditional parser would.
-
Haskell with only one type family
In this post, we will implement open type families with a single actual type family. Surprisingly, this endeavor leads to increased expressivity: type families become first-class.
-
Learning Haskell: Miscellaneous enlightenments
The following are some of the so called “Aha!” moments I have experienced while learning Haskell. I am sharing them here so that it might help someone spare the hopeless frustration that precedes them.
-
Loading a Cabal module in the GHC API
While loading a simple module into GHC’s API is quite trivial and well documented, loading complex modules will require you to find the appropriate dynamic flags. These flags are usually retrieved and loaded into GHC by Cabal. Sadly for us, Cabal’s API does not seems to expose a direct way to get these flags.
-
Pragmatic Haskell 3: Beam Postgres DB
No need to read a book to use Haskell! This post will get you going with a serious web application while only sticking to the concepts that are encountered. This is a Haskell safari with as end goal a working webapp with database.
-
PureScript and Haskell at Lumi
Previously, I talked about how we were able to ensure correctness while successfully migrating our database from RethinkDB to Postgres by leaning heavily on Haskell. In this blog post, I’m going to tell a similar story about how we’re improving correctness on the front-end by moving from JavaScript to PureScript.
-
Reimplementing
graphmod
as a source plugin:graphmod-plugin
You may have heard about source plugins by now. They allow you to modify and inspect the compiler’s intermediate representation. This is useful for extending GHC and performing static analysis of Haskell programs.
-
The Book of Types: New chapter: Dependent types part 1 and extra goodies
I’ve just uploaded the first part of working with dependent types in Haskell; it introduces the notions of singletons, walks through their derivation, and then shows how you can use the singletons package to get all of this stuff for free.
-
Monads are often a point of frustration for learners of Haskell. The question of what a monad is leads to the question of why a monad is. The question of why a monad is leads to the question of what a monad is.
Jobs
Are you looking to hire a Haskell developer? You should advertise with us!
-
Software engineer at Tesla in Palo Alto
This role provides a unique opportunity to leverage the strengths of Haskell in a production setting. A creative, well-rounded problem solver will be able to work on and invent a diverse array of high-visibility, interdisciplinary applications that directly improve Tesla products.
In brief
- A DSL for music
acid-world
: A potential replacement foracid-state
focusing on flexibility and usability- Email message parsing in Haskell in 2018
- GHC proposal: Remove the
*
kind syntax - HyperHaskell: Release of version 0.2.1.0
- Keeping it clean: Haskell code formatters
- Using a one-element type as a pretend keyword
Package of the week
This week’s package of the week is Taskell, a CLI kanban board/task manager for Mac and Linux.
Call for participation
Events
We’re doing things in this section a little differently starting with this issue. You may notice a lot more events! Hopefully that means you’ll be able to find some local Haskellers to meet up with. Please let us know what you think about this change over on GitHub.