A Program module is defined once, in a single declarative form, and the compiler renders it into idiomatic source for each target language, and back into Program itself. Write the logic once; ship it everywhere.
Every module is stored in a canonical command form. Each target is a small render plugin that walks that form and emits natural code for its language: types, modules and functions mapped to the idioms a native developer would reach for. The shape never changes between targets; only the punctuation does.
Pick a target to see the same counter program rendered into it.
Plain, dependency-free JavaScript for the browser.
The same JavaScript output, with Program's types carried through as TypeScript types.
Flutter and cross-platform apps, with Program's types mapped onto Dart's.
Native Apple platforms: iOS, macOS and the rest of the family.
Back-end services and command-line tools, rendered with Go generics.
Systems and back-end code, with ownership-aware closures.
Low-level, allocation-explicit native code.
The canonical command form every module is stored in, the interchange the other targets render from.
A GLSL shader target also exists for graphics-only programs (it has no concept of a UI counter, so it is not shown here).