Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Acknowledgments and provenance

This book emerged from a series of extended conversations between William and Claude (an AI assistant made by Anthropic), conducted in May 2026, while William was simultaneously designing an effects-native ISA and the small ML that targets it. The book and the actual hardware/software project grew up together: design decisions made in the conversation got tested against compiler and emulator implementations built in parallel by other agents, and findings from those implementations flowed back into the book.

The structure of credit is therefore atypical. The voice of the book is largely the AI’s, since most of the prose was generated by the AI in response to William’s questions, redirections, and pushback. The direction of the book — what to investigate, what to defer, what to elaborate, what was missing — came from William, informed by his systems engineering background and the parallel work on the silicon and software side.

Specific things worth noting:

  • The ISA design started from a draft William produced before the book conversation began, and went through four revisions during the writing process. The final v0.4 specification in Appendix A is the synthesis of those revisions.
  • The language design started from a proposal by a separate compiler-implementation agent, and was revised twice during the writing. The final v0.2 specification in Appendix B incorporates findings from that agent’s implementation work.
  • The Ruby emulator that runs the example programs in this book was built by a third agent. Its existence is what makes the kernel chapters concrete rather than hypothetical.

A specific debt is owed to the broader effects-and-handlers research community — particularly Daan Leijen’s work on Koka, Andrej Bauer and Matija Pretnar’s work on Eff, and the OCaml 5 effects implementation team. The language design owes its row-polymorphism and handler syntax to these sources. Errors in implementation or pedagogy are not theirs.

Earlier predecessors of this design space deserve mention: the Lisp Machines for the radical proposition that hardware tags can be a load-bearing part of a system’s semantics; the BEAM virtual machine and its OTP libraries for the proof that millions of cheap continuations are not only possible but practical; Singularity OS for the idea that message-passing isolation can replace memory-protection isolation; seL4 for the proof that capability-based kernels can be formally verified. None of these projects is the same as what this book describes, but the book would not exist without their having existed first.

The mistakes are entirely mine, William’s, or some combination thereof.

— W.