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

Prism

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.