[idea:26w41-rheo]rheo2026-10-11

Rheo

In an attempt to optimize my main rookery, which now takes upwards of 30s to build, I spiked the introduction of a new mechanism in Rheo called ligaments. The idea here is basically that, because Rheo allows you to split a single Typst entrypoint across multiple files as vertebrae, it can keep track of which individual files need to be recompiled on any given change, rather than recompiling everything from scratch. Typst already provides incremental computation through memoized functions but these don’t necessarily map to the decomposed parts of a Typst file that Rheo synthesizes. If I have it right, the sticking point is that we need to be able to use references freely across files, which creates a second-order dependency network that Typst’s inbuilt memoization won’t solve out of the box. Because references need to resolve, the synthesized Typst needs to be a single bundle, which means that we can’t simply abstract vertebrae behind #import statements and get Typst’s memoization optimization for free.