Issue 146
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
-
Isomorphism and Embedding by Marko Dimjašević
To me as a programmer, to write mathematical proofs that are mechanically checked by a computer feels empowering. To have these proofs as executable programs feels even more empowering. Therefore, our proofs have a computational aspect and vice-versa: our programs have a logical aspect.
-
Bank kata in Haskell - dealing with state by Liam Griffin
In functional programming, you cannot encapsulate state or you lose it. Anything that is not returned from a function is lost. So, how do we deal with storing them?
-
Freer Monads, More Better Programs by Sandy Maguire
As best I can tell, the community roughly fragments itself along four lines — those who like
mtl
, those who say “just do everything inReader
IO
”, those who like the three layer cake, and those who think free(r) monads are worth their weight in gold. -
Haskell command-line utility using GHC generics by Gabriel Gonzalez
My aim is to convince you that this Haskell feature improves code clarity without increasing the difficulty. If anything, I consider this version less difficult both to read and write.
-
Haskell Data Types Review! by Monday Morning Haskell
This week we’re taking a quick break from new content. We’ve added our new series on Haskell’s data system to our permanent collection.
-
Masking async tasks in the wild
A new task gets spawned synchronously from a C code and immediately returns a handle: an object of type
Async ()
wrapped inside aStablePtr
. The spawned thread is not waited from anywhere, thus being run in the wild. -
Randomization Testing for an SQL Translator by Alexey Kuleshevich
Not all SQLs are created equal. I’ll say even more, none of the SQL dialects are even close to being equal. In particular, when talking about Microsoft SQL Server and PostgreSQL, their syntax might look similar. However, in their semantics, they are mountains apart.
-
Refactoring Haskell: A Case Study by Vaibhav Sagar
Many people claim that refactoring Haskell is a joy. I’ve certainly found this to be the case, but what does that mean in practice? I thought it might be useful to demonstrate by refactoring some of my own code.
-
The ReaderT design pattern or tagless final? by Magnus Therning
The other week I read V. Kevroletin’s Introduction to Tagless Final and realised that a couple of my projects, both at work and at home, would benefit from a refactoring to that approach.
-
The types got you by Mark Karpov
As the GHC compiler evolves and grows its feature set, one couldn’t help but wonder about the connection between power provided by a programming language and the process of making design decisions when developing software.
Jobs
- Anduril Industires is Hiring in Orange County
Come write Haskell, Rust, and Nix (and some C++ when necessary) to make autonomous robots and drones go! If you like FP, interfacing with hardware, and solving problems in detection, tracking, and autonomous vehicle control, send a note to travis@anduril.com
In brief
- Applied Category Theory 2019
- Call for new Stack issue triager
- Cursors, Part 4: The Textfield cursor
- Experiment: ghc bug bounty
- Finding roots of polynomials in Haskell?
- Fixing GHC’s graph register allocator
- GoogleEmail2 Deprecation
- Haskell network library version 3.0
- IntelliJ-Haskell 1.0.0-beta44
- Lambdabot | Slack App Directory
- oset-0.4.0.1 released
- sexpr-parser-0.1.1.2 released
- Type Classes: Deriving
Package of the week
This week’s package of the week is Hadolint, a smarter Dockerfile linter that helps you build best practice Docker images.
Call for participation
Events
North America
- 2019-02-14 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-02-16 in Bellevue, WA, USA by Seattle Area Haskell Users’ Group: General discussion
- 2019-02-16 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out, chat FP, work on some code
- 2019-02-16 in Berkeley, CA by Code Self Study: Open Programming Session (Saturday Afternoon)
- 2019-02-18 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Practice Track - Parallel and Concurrent Programming in Haskell
- 2019-02-18 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - The Weekly Function
- 2019-02-18 in Lehi, UT, USA by Utah Haskell: Utah Haskell Meetup | Book Club
- 2019-02-19 in Minneapolis, USA by HaskellMN: HaskellMN Monthly Meetup
- 2019-02-19 in Carmel, USA by Indy FP: Show and Tell: Coding exercise in many languages
- 2019-02-20 in Berkeley, CA by Code Self Study: Open Programming Session (Wednesday, Berkeley)
- 2019-02-20 in Houston, TX, USA by Houston Functional Programmers: Office Hours
- 2019-02-20 in Austin, TX, USA by Austin Haskell Users Group: Haskell Beginner-Friendly Lab
- 2019-02-20 in Portland, OR, USA by Portland Elixir & Erlang User Group: Monthly Meeting - Elixir Monitoring Tools: Observer, New Relic, Telemetry & more
- 2019-02-21 in Tucson, AZ, USA by Tucson Functional Programmers: Technical Talk - Nix: the purely functional package manager
- 2019-02-21 in Austin, TX, USA by Austin.Elm: It’s BACK!! Elm Hack Night at Lunar Collective
- 2019-02-21 in San Diego, CA, USA by San Diego Functional Programmers: February Meetup - Lambda Calculus
Europe
- 2019-02-14 in London, United Kingdom by Hoodlums: Hoodlums Meetup
- 2019-02-16 in Berlin, Germany by Study Haskell: Weekly Haskell-studying session
- 2019-02-18 in Bucharest, Romania by Bucharest FP: Bucharest FP #40 — Recursion Schemes in Haskell
- 2019-02-18 in London EC2, United Kingdom by Skills Matter - X Matters Series - Developer Events: Data Matters with Chanuki Illushka Seresinhe!
- 2019-02-19 in Bristol, United Kingdom by CodeHub Bristol: Hack Night
- 2019-02-19 in London EC2, United Kingdom by Skills Matter - X Matters Series - Developer Events: Leadership Matters with Elizabeth Varley!
- 2019-02-19 in Helsingfors, Finland by Helsinki Haskell Users Group: RELEX Haskell Meetup
- 2019-02-19 in Poznań, Poland by Poznań Java User Group: Spotkanie Poznań JUG: Serverless, Haskell!
- 2019-02-20 in Leeds, United Kingdom by Code & Coffee (Leeds): Code & Coffee
- 2019-02-20 in Berlin, Germany by Berlin Haskell Users Group: Haskell Wednesday
- 2019-02-20 in London EC2, United Kingdom by Skills Matter - X Matters Series - Developer Events: Ops Matters with Yan Cui!
- 2019-02-20 in Stockholm, Sweden by Haskell Stockholm: Workshop: Domain modelling with Haskell
- 2019-02-20 in London, United Kingdom by London Haskell: @brant they’re good DAGs Brent
- 2019-02-20 in Wroclaw, Poland by Functional Programming Wroclaw: fp-wroc #24 Czego potrzebujesz by zbudować swój własny DSL w Scali
Africa
- 2019-02-16 in Nairobi, Kenya by Nairobi JVM: Building Scalable Data Pipelines with Kafka and Apache Spark
Oceania
- 2019-02-18 in Perth, Australia by Perth Functional Programmers: Haskell meetup