We’ll try to keep this brief. What happened is this:
In late 2016, Julie knew she wanted to write another Haskell book, one she had been calling “the Haskell enchiridion” in her mind as well as in her Gitlab account. An enchiridion is a manual, a guide. Julie envisioned a practical reference manual for intermediate Haskell users. She asked Chris Martin to work with her because of his track record of writing small but illustrative examples.
In February 2017, we announced the project.
We began writing a build process for the book that was almost certainly overkill but allowed us to incorporate diagrams built with the
diagrams package directly into the LaTeX-set text as well as parse Haskell source code files, compile and test them, and then render them in the LaTeX files. That has been a lot of fun and allows us to continuously test the code that will be in the book.
The outline kept growing and growing, as we wanted to cover both the history of logic, mathematics, and computing that eventually led to Haskell as well as the practical matters, such as compiler pragmas and important libraries. We wanted to emphasize the joy of Haskell and the places where it really shines but also be a solid intermediate guide for Haskellers who don’t really care about Leibniz or category theory.
Chris said, “we should not write a 1200-page book.” Julie said, “but writing 1200-page books is what I know.”
In November 2017, we decided the sprawl of all we wanted to cover would be easier to manage on a web site, where links allow topic interconnections better than a physical book can, and we started working on typeclasses.com. At some point we decided it would be best if that site had Haskell and Nix courses and projects in addition to the writing we’ve been doing for the book.
In June 2018, we launched Type Classes with a course, a project, and some articles. We are trying to get to where we can offer a new course each month, but there have been the usual growing pains.
Lately, we’ve been looking at all we have to write – the partially finished parts as well as the bare stubs populating the book repository and have made a decision: Joy of Haskell is properly two books, not one.
One will be the original “enchiridion” idea: a desktop manual or reference to the ins and outs of using GHC Haskell and some of the more important libraries. The Joy of Haskell: Desktop Reference, perhaps.
The other will be The Joy of Haskell: Haskell in Context, or something along those lines and will tell the story, from Aristotle to “the Simons” of how Haskell came to be and where it might go from here. This one is by far the more ambitious project, and it’s going to take more time. Also, we have no idea if anyone wants this book other than us, but we will write it anyway.
The reference version of Joy is well underway. Early subscribers to Type Classes will watch it progress and grow as we fill it out. Subscribers will have access to the PDF, before it’s released to the public, as well.
We’re very grateful to our subscribers who came in early and have been sticking with us as we’ve gone through this development and continue working out rough spots. We believe having the content in longer, more interconnected forms on the site and also in a somewhat condensed, linear format for a print book will allow us to cover everything we want to cover and allow readers some options in how and how much they read about a given topic.
We didn’t want to go on being silent about what’s happening with Joy. We hope the community will ultimately be richer for having more materials available, and we’re grateful for all the support we’ve had as we figure out the best ways to make it.