Pragmatic Type Level Design (LeanPub, 2024)

Pragmatic Type-Level Design is a groundbreaking exploration of type-level programming. Unlike other books flirting with a type system and mathematics, this book emphasizes practical applications: best practices, use cases, design patterns, principles, and application architectures universal to various statically typed languages, such as Scala, Rust, Haskell, C++, OCaml, and F#. The model language is Haskell, but there is a Rosetta Stone part with the same ideas translated to Scala 3 and Rust.

Buy Pragmatic Type-Level Design on LeanPub
Russian edition: Проектирование на уровне типов (ДМК-Пресс, 2025)

The book is approachable to mere developers like me. It is engaging, systematic, full of fun examples, and well-written. It is academism-free. You won’t find anything related to Category Theory, Type Theory, or Abstract Algebra in it. There is no math at all. The book proves that heavy math concepts are unnecessary to benefit from type-level programming.

With its focus on practical outcomes and real-world business needs, Pragmatic Type-Level Design is a must-read for software architects, functional programmers, and engineers who want to elevate their designs beyond the value level. This book teaches the how and why of type-level programming, ensuring readers can make informed, rational design decisions in their projects.

Book’s repo on GitHub

You’ll also find the book enjoyable. My experience in technical and creative writing ensures a well-crafted, engaging reading experience.

Acknowledgments

I’m very thankful to all my Patreon supporters for helping me know that my work is needed:

  • Patryk Zieliński
  • rohit
  • Anatolii Prylutskyi
  • Gabriele Lana
  • Christopher Miller
  • Cezar Halmagean
  • Matt Braun
  • John Man
  • Dmitry Podoprosvetov
  • Vadim Sotnikov
  • Vladimir Krivopalov
  • Francesco Zanini
  • James Bartholomew
  • Alex Vakhitov
  • Jacob Baumbach
  • Omar Mefire
  • Veronika Romashkina
  • Simon Shine
  • Ignacio Ballesteros
  • Andor Penzes
  • Michele Riva
  • Juan Ortega
  • Andrew Broman
  • Angel Vanegas
  • Kayvan Kazeminejad
  • Pavel Kucera
  • Jonathan Thaler
  • Forest Walk
  • Dmitriy Zakomirnyi
  • James
  • Grzegorz Milka
  • Ilia Rodionov
  • Mat
  • Max Moiseev
  • Alexey Lebedeff
  • Jorge Vasquez