Issue 98 2018-03-15
Subscribe now! We'll never send you spam. You can also follow us on Twitter or with 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.
Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.
The GHC developers are very happy to announce the 8.4.1 release of Glasgow Haskell Compiler. This is the third major release in the GHC 8 series. As such, the focus of this release is performance, stability, and consolidation.
With the release of
toxiproxy-haskellon Hackage, I’d like to introduce the Haskell community to failure testing using Toxiproxy so that they can improve the resilience of their network connected applications.
Refactoring and finding the right data structure
The program allowed what should’ve been considered conflicting modes of operation. In this episode I’ll perform the same modification, to show you how the right data structure can guide and improve your implementation.
Data visualization with Haskell: NYC public urination
Using Haskell, we queried, processed, and visualized 2,678 3-1-1 Urinating in Public complaints recorded between 2010 and 2016. A definite cyclic pattern can be seen from year to year.
Safe library with better stack traces
To get the stack traces just add
Partialto any function you believe to be partial — it’s easy. If you are happy to stick with GHC 8.0 and above you can use
GHC.Stackwithout depending on
Generating artwork with Haskell
I’ve been creating generative art consistently for about six months now. People are starting to ask what my stack looks like, and until now I haven’t had anything to point at; I’d like to change that today!
Haskell design patterns: The handle pattern
The handle pattern allows you write stateful applications that interact with external services in Haskell. It complements pure code well, and it is somewhat the result of iteratively applying the question: Can we make it simpler?
Because Haskell’s type system isn’t as pleasant as the value system, this can get gnarly. Servant has a very happy path — but that path is very narrow.
I noticed that when running on the Windows command line, the narrator would break words apart when it reached the 80 column mark. In order to make my text adventure screen-reader friendly I had to support an 80 character column limit.
Backpack for initial and final encodings
Backpack lets us decompose final encodings a little more than we can with the usual approach, although we are partly trading off newtype wrapping for sub-libraries. I still really like the usage of it.
Programming language theory engineers at IOHK
IOHK is hiring six Programming Language Theory engineers, to design and implement the smart contract language Plutus and related domain specific languages.
Functional developers at Tracsis in Leeds
We are working on a green-field, high-availability, unrelentingly cloud-y web product for rail control and planning. Our stack is a high-availability, event-sourced Yesod backend running on AWS.
- Haskell needs better libraries: A proposal
- More series + What’s coming up!
- Some thoughts on typeclass-based codecs
- Stackage Nightly 2018-03-13 with GHC 8.4.1
- Symbolic execution: Intuition and implementation
- Talk: Case study: Cross compiling
- Typeclass optics
- Writing simple Haskell
Package of the week
This week’s package of the week is Hedgehog, a modern property-based testing system that will eat all your bugs.