Issue 98
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
-
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-haskell
on 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
Partial
to any function you believe to be partial — it’s easy. If you are happy to stick with GHC 8.0 and above you can useHasCallStack
fromGHC.Stack
without depending onsafe
. -
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.
Jobs
-
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.
In brief
- 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
dhall-json
- 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.
Call for participation
- arithmoi: Do not report -1 as a factor
- hawk: Configure Travis to run the stack and cabal builds in parallel
- stack: Possibility to specify a base path to unpack a package
- streamly: Add base/Control.Monad operations
Events
- March 15: Revisiting “Why FP Matters” by John Hughes in Chicago, Illinois, United States
- March 16: Utah Elm lunch in Lehi, Utah, United States
- March 17: Aspectos técnicos de Bitcoin y blockchain in Madrid, Spain
- March 19: Coding Dojo: Containers in Karlsruhe, Germany
- March 20: “A Brief History of Functional Programming” and “Maps in Elm” in Lower Hutt, New Zealand
- March 21: CanFP Monthly meetup in Canberra, Australia
- March 22: Haskell Talks and Hangout at Formation in San Francisco, California, United States
- March 27: Auckland FP Meetup: Learn FP Hands-on in Auckland, New Zealand
- March 28: Haskell Study Group in Dublin, Ireland
- April 10: Haskell Hangout: Getting Started with Yesod and Haskell Web Development in San Diego, California, United States