Issue 79
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? We love contributions! Tweet us at @HaskellWeekly or open a pull request.
Survey
We are excited to announce the first annual Haskell users survey! It is inspired by Rust’s recent surveys and Johan Tibell’s state of Haskell surveys from a few years ago. The goal of the survey is to better understand how Haskell users feel about the language, ecosystem, and community. So please, if you’re reading this: Take 10 minutes and fill out the survey. Thanks!
Featured
-
The GHC team is very pleased to announce the second candidate of the 8.2.2 release of the Glasgow Haskell Compiler. This is the second and hopefully last of two release candidates leading up the final 8.2.2 release.
Editor’s note: Use this
stack.yaml
to easily test GHC 8.2.2-rc2 with Stack. -
Persistent red-black trees in Haskell
While Haskell is steadily gaining mainstream adoption in the industry, it still remains one of the most viable languages used as a teaching medium. In this post we will be looking at the construction and operations of red-black trees. Of special interest here would be the deletion of nodes, as the operation of delete is inherently opposed to Haskell’s fundamentals of immutability.
-
Motor: Finite-state machines in Haskell
While writing my talk “Finite-state machines? Your compiler wants in!”, I have worked on porting the Idris ST library to Haskell. I call it Motor. Motor is an experimental Haskell library for building finite-state machines with type-safe transitions and effects.
-
This is such a massive release to the universal markup converter that it’s hard to summarize. Tons of new features, changes, fixes, and improvements.
-
Building GHC: The package database
While we usually build packages for use with GHC via
cabal
, the packages GHC knows about are those registered in the known package database. The global package database usually resides next to theghc
binary and is calledpackage.conf.d
. -
This post serves as notes and explorations of my first patch to GHC. I’m going to start from the very beginning — so it might be kind of boring!
-
Dueling rhetoric of Clojure and Haskell
Recently Lispcast wrote a post interpreting Rich Hickey’s controversial statements on static types. This post had some very interesting perspectives and some unfortunate misinformation.
-
There are other under-appreciated types and libraries that complement
ByteString
andText
. These may be a better choice in some circumstances, but I believe many Haskellers are not aware of them. This post aims to rectify that. -
The exodus to Streamgard, an epic poem
The Serpent will assemble its minions, Early-close and Strictness of effects, and unleash its wrath upon our world. Foldl, son of Haskell and brother of Foldr, would lead humanity to its last bastion, Streamgard, and organize the final fight…
-
Dirt cheap Haskell consultancy
TL;DR: Pay us $100 per month and we’ll be answering your questions about Haskell.
Jobs
-
New fintech startup hiring 1-2 Haskell backend engineers
Mercury is hiring 1-2 backend engineers to join our stealth B2B fintech startup. Since we’re a new startup, you’ll be shaping our backend codebase.
Are you looking to hire a Haskell developer? If so, advertise with us!
In brief
- A space of their own: adding a type namespace to Hackett
- An introduction to Brick+Reflex
- Duckling: A Haskell library that parses text into structured data
- Functional Geekery Episode 113: Oskar Wickström
- Haskell is not programming: Introduction to the “Haskell in Pictures”
- NixCon 2017 videos
- Refactoring to pure code and dealing with exceptions
- Writing a concurrency testing library part 2: Exceptions
Package of the week
This week’s package of the week is Importify, a tool that helps you to manage the import section of your Haskell project modules.
Call for participation
- foundation: Add terminal size (row+column) capability in Basement.Terminal
- foundation: Improve upper/lower
- hpack: Wrong cabal-version when custom-setup is used
- ngless: Update samtools
- yesod: For all yesodweb projects: Adding an PR/issue template
Do you have a beginner-friendly issue you want some help with? Email info@haskellweekly.news to get it included here!
Events
- November 2: Regensburg Haskell Meetup: Digesting past events
- November 5: Berlin Functional Programming Group: Haskell Programming From First Principles Study Group
- November 6: Heidelberg λ Meetup: How to have fun with type-level Haskell, and adventure to Coq
- November 7: Haskallywags: Chapter 3 & 4 (“Strings”, “Basica Datatypes”)
- November 8: Haskell DC: Functional Reactive Programming
- November 9: Haskell Hackers: The South SF Bay Haskell User Group: Jon Coens: Hotswapping Haskell
Know of an event that Haskell users would enjoy? Let info@haskellweekly.news know about it!