agentlanguages.dev
verification camp

AILANG.

Row-polymorphic Hindley-Milner with capability-based effects (IO, FS, Net, Clock, AI). No loops, lambda calculus only. Written autonomously by AI agents.

authorMark Edmondson / Sunholo
implementationGo
targetNative binaries, WebAssembly
licenceApache-2.0
first seenSeptember 2025
maturityworking compiler
AILANG Benchmark DashboardAILANG Benchmark Dashboard

The thesis.

AILANG takes the verification camp’s diagnosis and applies it at the layer of authority. The diagnosis is that LLMs hallucinate side effects — network calls in pure functions, filesystem writes in helpers that look read-only, model calls in code paths the operator never approved. AILANG’s answer is to carve effects into capability categories — IO, FS, Net, Clock, AI — and make every one of them visible in the function’s signature, row-polymorphically, with Hindley-Milner inference filling in the rest. A function that doesn’t declare an effect can’t perform it; a run that wasn’t given a capability at the CLI can’t grant it from inside.

For humans, a language is a tool for expression. For AIs, it's a substrate for reasoning.

The distinctive move is the no-loops decision. AILANG commits to lambda calculus, pattern matching, and ADTs as its only forms of control flow — no for, no while, no mutable accumulator. Where Vera tracks model calls as a single <Inference> effect, AILANG splits the world into five capability categories and refuses to let the language grow a construct that obscures any of them. The bet is that determinism, replay, and structured per-effect traces are worth giving up the loop.

What it looks like.

module examples/hello

import std/io (println)

export func main() -> () ! {IO} { println(“Hello from AILANG!”) }

The ! {IO} after the return type is the effect row. A caller without an IO capability granted via ailang run --caps IO cannot invoke this function. Effect rows compose: a function that calls IO- and FS-effecting helpers must declare {IO, FS}.

Distinctive moves.

Maturity.

v0.20.1 with 110 published releases on GitHub, Apache-2.0 licensed, 2,958 commits, 26 stars. The compiler is implemented in Go (85.5% of the source) and ships native binaries for macOS (Intel and Apple Silicon) and Linux plus a WebAssembly target used by nine in-browser demos. Standard library covers std/io, std/fs, std/json, std/zip, std/xml, std/crypto, std/http, std/net. The benchmark dashboard runs 33 tasks across 8 frontier models in three modes — zero-shot, self-repair, and full agentic — on every release.

The bet is that the rest of the catalogue’s verification entries are designing a language a human reads and an AI writes, while AILANG is designing a language an AI both writes and maintains. The next test is whether the agent-authored development model produces a standard library deep enough to compete with MoonBit’s roughly two-year head start (MoonBit launched 18 August 2023).

Agent tooling.

SKILL.md, AGENTS.md, and CLAUDE.md ship in the repository; llms.txt and llms-full.txt are served from the docs site. A remote MCP server exposes typed tools for stdlib lookup, examples, design docs, and the benchmark dashboard. The ailang_bootstrap plugin installs slash commands (/ailang:prompt, /ailang:new, /ailang:run, /ailang:challenge) into Claude Code and the equivalent extension into Gemini CLI; both download a platform-matched compiler binary on install. The CLI emits structured per-effect traces designed for the agent’s next iteration to act on.

design DNA
  • Vera verification Vera tracks LLM inference as one <Inference> effect; AILANG carves authority into IO, FS, Net, Clock, AI as separate capability categories granted per run.
  • Boruna orchestration Both build capability-based effect systems; Boruna enforces declared effects at the VM, AILANG enforces them at the type system and the CLI capability flag.
  • MoonBit verification Both ship effect typing on a functional core; MoonBit's effects are conventional and general-purpose, AILANG's are row-polymorphic and carved for agent-relevant authority.
§ history

Timeline.

Sep 2025
First public release on GitHub under Apache-2.0.
Jan 2026
AILANG reaches v0.6.2; Mark Edmondson publishes the language framing on dev.to.
May 2026
v0.20.1 ships. 110 releases, 2,958 commits. 33-benchmark dashboard runs across 8 frontier models on every release. MCP server, Claude Code plugin, and Gemini CLI extension all in production.