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

ALUX project

ALUX codebase is under active development and is not yet publicly available.

ALUX programming guidelines

Note

This book develops the foundation needed to understand and contribute to ALUX’s meaning-first codebase, beginning with a central principle of Denotational Design: define what programs mean before deciding how they work.

Following Conal Elliott, it treats computation as a clear mathematical object rather than an opaque sequence of steps.

Specifications are expressed as simple, compositional capability traits that describe what a program means. Interpreters provide interchangeable ways to realize those meanings.

The result is software whose composition rules, implementation obligations, and valid equations are easier to see and test.

Machinery vs. meaning

Concepts and Insights explain useful programming machinery. Denotational Design explains how to decide what machinery should preserve.

How to read this book

Read the book in three layers:

The semantic principles are language-agnostic. Rust is the primary implementation language, and a concurrent language pipeline connects these principles to Tolang.

Who this book is for

  • Programmers who want complex software to remain modular, composable, testable, and maintainable as it evolves.
  • Developers seeking to connect category theory, type systems, and program design.
  • Readers familiar with representational and operational techniques—such as free monads, continuation-passing style (CPS), and defunctionalization—who want to understand how that machinery serves, rather than defines, meaning-first design.
  • Readers familiar with dependent types and proof-oriented programming who want to apply that mental model while writing high-performance Rust.
  • Contributors who need to read meaning-first Rust specifications and understand how a concurrent language can be compiled without making its compiler the definition of the language.