Skip to content

Almide Documentation

The language LLMs can write most accurately. Every design decision serves one metric — modification survival rate.

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.

Start learning →