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? We love contributions! Tweet us at @HaskellWeekly or open a pull request.
Learning Haskell is a good idea, but you don’t have to do it alone. This repo brings together a number of resources for people who would like to start their own Haskell study groups but aren’t sure how to do it. Included here is advice for publicizing your group, guidelines for participants, a recommended schedule, and other resources.
A couple of weeks ago we’ve quietly released versions 2.0 of both Cabal and
cabal-installafter approximately a year of development. The 2.0 release incorporates more than 1500 commits by 64 different contributors. This post serves as a formal release announcement and describes what’s new and improved in version 2.0.
I’ve been recently developing a Coxswain library that defines row types and implements row unification. I think the Haskell community is hungry for row types, especially records and variants. This wiki page outlines the basic design and intended use of the library, use cases I envision, and my open questions.
This blog post was inspired by some questions around writing efficient Conduit code, so I’ll try to address some of that directly at the end. The concepts, though, are general, and will transfer to not only other streaming libraries, but non-streaming data libraries too.
We switched from RethinkDB and ElasticSearch to Postgres, leaning heavily on Haskell in order to fill in some of the gaps quickly. The project was a success, and we’re very happy with the switch. Haskell has been invaluable for refactoring safely and confidently.
Once we were over the infamous Haskell learning curve, we began looking for functional programming, immutability, and types everywhere! Given that one-third of our code runs in the browser, it is only a matter of time before we make the switch to typed FP for front end development as well. But, which language/framework/library should we use?
Yesterday, at the Haskell Implementers Workshop 2017 in Oxford, I gave a lightning talk titled “syntactic musings”, where I presented three possibly useful syntactic features that one might want to add to a language like Haskell.
I’m very proud to announce Squeal, a new database library for Haskell. Squeal is the culmination of my Haskell experience for the last 4 years. It’s been a fun road and I’ve learned so much from so many friends and strangers in the community. So Squeal is dedicated to them.
What I’m going to talk about here is an alternative which provides most of the benefits with a very low barrier to entry: splitting up IO into granular monad type classes.
Time flies! The Haskell Summer of Code is over, and this is my first and last status update. Last in the HSoC, but not in the project, as you’ll see. My goal was to bring
new-buildto a usable state, to eventually replace the old commands.
Sadly we aren’t currently aware of any Haskell job openings. Are you looking to hire a Haskell developer? If so, consider advertising with us!
- A fully functional, fully functional webapp
- A media player in FLTKHS
- Debugging types: A stream of thought
- Deep learning and deep types: Tensor flow and dependent types
- Differentiating functional programs
- Exemplary Read World backend API built with Scotty
- Firefly: A dead simple HTTP framework
- Functional Geekery Episode 107: Julie Moronuki
- Improving on Vi Improved
- Monoids: What they are, why they are useful, and what they teach us about software
- neovim-ghci: Interactive Haskell development using GHCi in Neovim
- PureScript News: Issue 1
- Type of HTML: High performance, type safe HTML generation
Package of the week
This week’s package of the week is thank-you-stars, a command-line utility for starring the GitHub repositories of your dependencies.
Call for participation
- elm-repl: Command to “clean” the REPL output
- eta: Improve code for
get*()series of methods for data constructors
- purescript: Default method implementations
- September 18: Vancouver’s Haskell Workshop