
Prism
Prism is a small, strict, impure functional language in the ML family whose type system tracks side effects. Effects are inferred, extensible rows that combine structurally as functions call one another, and they track observability: an effect handled inside a function vanishes from its type. The core is a call-by-push-value calculus in A-normal form that compiles to native code through LLVM, with memory managed by deterministic reference counting and fully-in-place update rather than a garbage collector.
This book has four parts:
- Language Specification defines the surface language: lexical structure, grammar, types, effects, and evaluation.
- Compiler documents the implementation: the pipeline, the core calculus, effect lowering, reference counting, the backends, and the verification harness.
- Standard Library is the API reference for the prelude and the standard modules, generated from their source by
prism docs. - Semantics is an unverified sketch of the Core terms and types.
Use the Playground to edit, run, and inspect Prism code via an interpreter run in the browser.