Concepts
Each concept has its own page — open one from the list or the sidebar.
- Numbers — Fixed-width signed and unsigned integers plus two float widths, with literal suffixes.
- Strings — UTF-8 by default, with encoding prefixes, heredocs, and opt-in interpolation.
- Booleans — The bool type with exactly two values, true and false.
- Symbols — Identifier-like :name values for tags and enum-like choices, plus symbol_set vocabularies.
- Identifiers — The naming rule for fields, types, kinds, labels, and bindings, plus reserved words.
- Lists — Ordered, homogeneous sequences — list<T> — and the collection builtins over them.
- Tables — Pipe-row syntax for writing many records of the same shape compactly.
- Tensors — Shape-carrying N-dimensional arrays — tensor<T, [dims...]>.
- Optionals — Values that may be present or absent — the none literal and the ? type suffix.
- Records — Named records via the type keyword — fixed sets of named, typed fields.
- Unions — Tagged variant sets — a value that is exactly one of several alternatives.
- Interfaces — Structural contracts — a set of fields a type must have, satisfied automatically.
- References — &T fields that accept any value structurally satisfying an interface.
- Namespaces — Scope declarations under a dotted path; use and :: control how names resolve.
- Imports & Modules — Pull another file's declarations into the document — disk and system forms.
- Fields & Blocks — The structural backbone — fields bind names to values, blocks group and nest them.
- Comments — Line comments with // or #, preserved across fmt and edits.
- Expressions — The expression grammar — operators, member access, calls, and constructor forms.
- Control Flow — if/else, match with patterns, if let, let bindings, blocks, and try/catch.
- Functions — First-class function values — literals, fn items, higher-order, and function types.
- Schema & Decorators — Decorators that describe a document's legal structure, validated by wcl check.
- Connections — Typed relationships between block instances, populated by arrow statements.
- CLI Reference — The wcl binary: parse, check, eval, set, fmt, repl, lsp, init, wdoc, and diff.