ilo 26.5.0

ilo - the token-minimal programming language AI agents write
Documentation
-- Shows the canonical fix-up for ILO-P003 "missing return-type marker".
--
-- A common slip is to put `>>` (pipe operator), `|` (or), or `:>`
-- between the parameter list and the return type, where ilo expects a
-- single `>`. The 0.12.1 diagnostic surfaces the offending character
-- literally so the next attempt sees what to change:
--
--   f x:n>>n;x    ==>   ERROR ILO-P003: expected `>`, got `>>`
--   f x:n|n;x     ==>   ERROR ILO-P003: expected `>`, got `|`
--   main:>n;x     ==>   ERROR ILO-P003: unexpected `:>` after `main`
--
-- Old wording was `expected Greater, got PipeOp` — the parser's
-- internal token-kind names leaked into user diagnostics and gave
-- agents no source-level information to act on.
--
-- The functions below are the correct shape after fixing each slip.

-- No-param fn — `name>return;body`, no colon, no extra arrow.
main>n;42

-- Single-param fn — `name p:t>r;body`, single `>`.
inc x:n>n;+x 1

-- Multi-param fn — params space-separated.
add x:n y:n>n;+x y

-- Param of list type — `L n` is "list of n", still `>` for return.
total xs:L n>n;sum xs

-- run: main
-- out: 42

-- run: inc 4
-- out: 5

-- run: add 2 3
-- out: 5