One way to write it
Canonical syntax with no synonyms. LLMs converge on the correct output faster because there’s only one valid way to express each concept.
One way to write it
Canonical syntax with no synonyms. LLMs converge on the correct output faster because there’s only one valid way to express each concept.
Two targets, one behaviour
Compile to a native binary or to WASM. Not merely “same semantics” — identical stdout, stderr and exit code, enforced by a contract ledger.
Repair-first compiler
Every error includes file:line, context, and an actionable hint. The compiler is a repair tool, not a rejection tool.
Effect tracking
Side effects are visible in the type signature. effect fn marks functions that touch the outside world.
Tiny WASM binaries
Direct IR-to-WASM emission with no runtime overhead. Hello World compiles to 703 bytes, and you pay only for what you use — list work adds about 2 KB.
fn greet(name: String) -> String = "Hello, ${name}!"
fn factorial(n: Int) -> Int = if n <= 1 then 1 else n * factorial(n - 1)
effect fn main() -> Result[Unit, String] = { let message = greet("world") println(message) ok(())}Language Guide
Learn the fundamentals — types, functions, control flow, and more.
Standard Library
40 modules. Everything from strings to HTTP.
Reference
Formal grammar, operator precedence, CLI usage.
Playground
Try Almide in the browser — no installation required.