Level up your programming skills. There’s a gap when you’re past the basics but real-world problems leave you swamped by details and wandering down rabbit holes. Exercism aims to fill that gap with lots of small, self-contained practice problems with just enough complexity to stretch your mind around new concepts.
I consider the safe-exceptions library uncontroversial, simply addressing the reality of exceptions in GHC today. This blog post is the opinionated part: how I recommend you use exceptions in Haskell, and how to structure your code around them.
With the latest version of the mysql library, we now have the machinery needed to use it properly in a concurrent setting. In the past, any multi-threaded use was a little risky, although in practice it seems to have been satisfactory for applications which were not too demanding.
Design your APIs from the outset to be extensible. There are common techniques employed in the Haskell world to make APIs that are resilient to changing feature-sets, and by employing them early on in your design process, you can hopefully avoid the painful choices between a better API and happy users.
Visualizing profiling data is a common problem, and one neat solution is to use flame graphs to get a high-level view of where time is spent, and why it is spent there. That’s why we wrote ghc-prof-flamegraph, a new utility useful for turning textual .prof reports into a pretty picture.
In this episode I talk with Gabriel Gonzalez. We cover numerous topics around Haskell from stumbling blocks for beginners, to co-routines, to shell scripting with Haskell, to equational reasoning, and much, much more.
If you want to make anyone on the core Elm team roll their eyes, just pick a feature that Haskell has and say, “Elm should have it too.” Typeclasses is the most common way to play the game, but you’ll get extra hipster points if you say higher-kinded types.
Did you like this issue? Let us know on Twitter! Think it could be better? Send us an email or open an issue. Thanks for reading!