Functional Programming Strategies

Archives
December 1, 2025

Back after nearly six months of silence

Hello!

It’s been nearly six months since my last email. I had a bit of an unfortunate summer. Some difficult, but entirely natural, situations came up with elderly family members. Life became a bit disrupted, and as a result work on the book and the newsletter got shelved.

However, I’ve been able to make time for the book for the last few weeks. Last I emailed I was moving from Latex to Typst. The main branch is now Typst. It’s good enough for my day-to-day work on the book, but it has a few outstanding issues that have prevented me from deploying it. There are some formatting bugs that I’ll fix up as I work through the content. Solutions are missing, which will take a bit of coding work to add back. The big issue, however, is the HTML export.

As of the most recent release Typst supports usable HTML export. However the exported HTML output lacks any styling. So I have a question for you: how often do you use the HTML version of the book? I consider PDF the main format, as I’m working towards a printed book for which I’ll need the PDF. As such, I’m happy to publish janky HTML and slowly work towards fixing that (and adding ePUB as well, but that’s a lower priority for me.) Let me know what you think of this plan. Do you want to get your paws on the latest PDF, or would you rather wait for more readable HTML?

The new goal for releasing the book is Easter 2025. I’m currently working on an introductory chapter on types, which will present the parse, don’t validate view of types-as-constraints. I also have the case studies to finish. I'm almost certainly going to include a case study on writing a stream processing system. I've run this many times in training courses, and I think it's a banger. I may write one on a query language. There are also the existing case studies to consider updating or removing. Finally, there are two optional chapters I'm still debating:

  1. A chapter on dependency injection, covering constructor parameters, the reader monad, the cake pattern (aka ML functors / modules), and tagless final. This is a topic that often comes up in commercial engagements, so it might be good to have a few words on it. It also brings together many of the concepts introduced in other parts of the book. Perhaps it should be a case study chapter? Let me know what you think!

  2. A chapter on designing for developer experience. The number one point will be to only use the techniques that make sense in the context of both solving real problems and being comprehensible by team mates. I also have lots of thoughts about designing APIs and supporting structures to make code more comprehensible and correct.

What are your thoughts on the above? Is there anything you particularly want to see that isn't currently in the book, or should I just hurry and finish it?

That's all for now. Back to work for me! I hope things are going well for you as the year winds down. Till next time!

Regards,
Noel

Don't miss what's next. Subscribe to Functional Programming Strategies:
Powered by Buttondown, the easiest way to start and grow your newsletter.