Issue 105
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
-
Explaining the recent Hackage downtime
Roughly two weeks ago, on April 12, we had about a day of Hackage downtime — the most significant downtime Hackage has experienced in years.
-
Asynchronous exception handling in Haskell
GHC Haskell ups the ante even further, and introduces asynchronous exceptions. These allow for very elegant concurrent code to be written easily, but also greatly increase the surface area of potentially incorrect exception handling.
-
In this post I’m going to go through how to use Haddock to maximize your Haskell documentation. Haddock is ubiquitous when documenting Haskell.
-
Automatically generated directories for individual Tasty tests
This is a practical trick for creating directories based on test names using the Haskell test framework
tasty
, as well as accessing the test names inside yourtasty
tests themselves. -
Avoid the dilemma of the trailing comma
The Haskell syntax uses comma-separated lists in various places and does, in contrast to other programming language, not allow a trailing comma. If everything goes on one line you write
(foo, bar, baz)
and everything is nice. -
Apart from being a Haskell advocate, Tobias is also a Nix advocate, which seem to go hand in hand, according to my quick survey of Google results mentioning both Haskell and Nix.
-
Generic programming should be based on representational equality. We can obtain this by reformulating
data
in terms ofnewtype
: manually or (tentatively) with compiler support. -
Last week, we explored how to automate the deployment of our Haskell app. Our system had a couple weaknesses though. This week, we’ll solve these problems using Docker images.
-
Parametrized unit tests in Haskell
Sometimes you’d like to execute the same (unit) test for a number of test cases. The only thing that varies is the input values, and the expected outcome. The actual test code is the same for all test cases.
-
The mysterious incomposability of
Decidable
Applicative
,Alternative
andDivisible
are Haskell classes that each have nice composition properties. There is a fourth class,Decideable
, that fills in the remaining corner of a square of properties but I cannot find any nice composition property for it.
Jobs
-
Software engineer at ITProTV in Gainesville, Florida
ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.
In brief
- A new Haskell library for talking to ODBC databases
- Announcing Eta v0.7.2
- Announcing Stack v1.7.1
- GC-less Haskell: A trivial SDL2 demo
- Let’s create a comparison table of all the Haskell record variants, and let’s find the best one(s) in the process!
- Monthly hask anything
- PureScript v0.12.0-rc1
- Webinar: Practical property testing in Haskell
Package of the week
This week’s package of the week is JuicyPixels, a library for saving and loading different picture formats.
Call for participation
Events
- May 3: Haskell talk in St. Louis, Missouri, United States
- May 4: International startup hackers in Seoul, South Korea
- May 5: Getting started with Ocaml in Bangalore, India
- May 7: Auckland FP Meetup: Functional Reactive Programming in TypeScript; followed by Property testing made simple(r) in Clojure in Auckland, New Zealand
- May 8: Haskell Stockholm’s early summer reunion in Stockholm, Sweden
- May 9: Amanj Sherwany shows you how to write yourself a parser combinator library in Montreal, Quebec, Canada
- May 10: Haskell.SG’s monthly meetup in Singapore