# q64 > q64 is a stream-first programming language that compiles to WebAssembly. > This file is a machine-ingestible map of the documentation for AI agents. > Schema version 1; q64 0.0.1. ## Documentation - Guides: https://docs.q64.dev/guides/getting-started - Reference: https://docs.q64.dev/reference/keywords - Spec (authoritative): https://docs.q64.dev/spec - Full reference dump: https://docs.q64.dev/llms-full.txt ## Keywords actor, as, break, catch, const, continue, draw, dyn, effect, else, enum, face, false, fit, fn, for, forall, from, graph, handle, if, import, in, law, let, loop, match, move, on, out, panic, pub, ref, region, return, scope, screen, select, self, Self, spawn, state, struct, tell, trap, true, try, type, use, var, where, while, with_capabilities, None ## Builtin types - `i8` (primitive) — 8-bit signed integer. - `i16` (primitive) — 16-bit signed integer. - `i32` (primitive) — 32-bit signed integer. - `i64` (primitive) — 64-bit signed integer. - `u8` (primitive) — 8-bit unsigned integer. - `u16` (primitive) — 16-bit unsigned integer. - `u32` (primitive) — 32-bit unsigned integer. - `u64` (primitive) — 64-bit unsigned integer. - `f16` (primitive) — 16-bit IEEE-754 float. - `f32` (primitive) — 32-bit IEEE-754 float. - `f64` (primitive) — 64-bit IEEE-754 float. - `bool` (primitive) — Boolean (`true` / `false`). - `str` (primitive) — UTF-8 string; `(ptr, len)` at the MIR/ABI tier. - `Simd` (prelude) — `Simd` — hardware-mapped SIMD lanes. - `Tensor` (prelude) — `Tensor` — static-shape tensor. - `DynTensor` (prelude) — `DynTensor` — runtime-shape tensor. - `Option` (prelude) — `Option` — an optional value (`Some` / `None`). - `Result` (prelude) — `Result` — success or error; drives `try` / `catch`. - `Vec` (prelude) — `Vec` — a growable, region-allocated sequence. - `Region` (prelude) — A memory region handle (spec/memory.md). - `Arena` (prelude) — An arena allocator over a region (spec/memory.md). ## Diagnostics Every code is documented at https://docs.q64.dev/diagnostics/; `q64 explain ` prints the same in-terminal. - LEX010 (Lexical, error): stray carriage return — https://docs.q64.dev/diagnostics/LEX010 - LEX020 (Lexical, error): unknown string-literal prefix — https://docs.q64.dev/diagnostics/LEX020 - LEX021 (Lexical, error): unexpected `&` in type position — https://docs.q64.dev/diagnostics/LEX021 - LEX030 (Lexical, error): unterminated string literal — https://docs.q64.dev/diagnostics/LEX030 - LEX031 (Lexical, error): char literals are not supported — https://docs.q64.dev/diagnostics/LEX031 - LEX040 (Lexical, error): unexpected character — https://docs.q64.dev/diagnostics/LEX040 - PAR040 (Parser, error): generic vs less-than ambiguity — https://docs.q64.dev/diagnostics/PAR040 - NAM001 (Names, error): unknown module — https://docs.q64.dev/diagnostics/NAM001 - NAM002 (Names, error): import path escapes qube — https://docs.q64.dev/diagnostics/NAM002 - NAM003 (Names, error): wildcard import is forbidden — https://docs.q64.dev/diagnostics/NAM003 - NAM004 (Names, error): selective import combined with alias — https://docs.q64.dev/diagnostics/NAM004 - NAM005 (Names, error): name collision in import scope — https://docs.q64.dev/diagnostics/NAM005 - NAM006 (Names, error): name is private to its qube — https://docs.q64.dev/diagnostics/NAM006 - NAM007 (Names, error): sub-module not re-exported — https://docs.q64.dev/diagnostics/NAM007 - NAM008 (Names, error): re-export cycle — https://docs.q64.dev/diagnostics/NAM008 - NAM009 (Names, error): block `pub` form is forbidden — https://docs.q64.dev/diagnostics/NAM009 - NAM010 (Names, error): unknown name in source module — https://docs.q64.dev/diagnostics/NAM010 - NAM011 (Names, error): dash in bare module path — https://docs.q64.dev/diagnostics/NAM011