Skip to main content
Next (unreleased) · docs c218d875 · core f63c1e69 · built 2026-10-26 22:39 UTC

Getting started with Metel

Metel is an experimental language exploring different paths to compile-time safety. It combines ideas from across modern language design—ownership, effects, capabilities, and more—and, free from legacy constraints, investigates how they can work together in a system that is both explicit and practical to use. In practice that means precise data shapes (records and structs whose types change as fields move in and out), row-polymorphic bounds, an explicit closure-capture model, and positive and negative capability bounds. The interpreter and the RFCs are still moving; this section is the practical on-ramp.

Pick a path​

  • Quickstart — the shortest route from a blank file to a running program.
  • The tutorial — a nine-step build. You write one small project, metrics, and each step adds a stage. This is where the distinctive parts of the language show up in context rather than as a feature list.
  • Reference pages at the end of the tutorial section — numerics, the standard library, control-flow detail — to dip into as needed.

For the normative detail, the language specification is the source of truth, and the error catalog lists every diagnostic the compiler and runtime can produce.