ilo 26.5.0

ilo - the token-minimal programming language AI agents write
Documentation
-- Sum types with payloads (discriminated unions)
-- Demonstrates ILO-62: type Shape = circle(n) | square(n) | point

type shape = circle(n) | square(n) | point

area s:shape>n;?s{circle(r):*3.14159 *r r;square(side):*side side;point:0}

describe s:shape>t;?s{circle(r):fmt "circle with radius {}" r;square(side):fmt "square with side {}" side;point:"a point"}

main>n
  c=circle 5
  s=square 3
  p=point
  ca=area c
  sa=area s
  pa=area p
  prnt (describe c)
  prnt (describe s)
  prnt (describe p)
  prnt (fmt "circle area: {}" ca)
  prnt (fmt "square area: {}" sa)
  +ca sa