Vera: a programming language designed for machines to write

· coding ai web · Source ↗

TLDR

  • Vera is a new language targeting LLM code generation: no variable names, mandatory contracts verified by Z3, typed effects, compiles to WebAssembly.

Key Takeaways

  • Uses typed De Bruijn slot references (@Int.0, @Int.1) instead of variable names to eliminate naming-related errors LLMs commonly make.
  • Every function requires requires(), ensures(), and effects() clauses; Z3 proves Tier 1 contracts statically, with runtime fallback for undecidable cases.
  • Algebraic effects (<IO>, <Http>, <Inference>, <State>) are tracked in the type system, so callers must explicitly declare any side-effectful capability.
  • Compiler diagnostics are structured as agent instructions with stable error codes (E001-E702) and --json output designed for agent feedback loops.
  • VeraBench results show Kimi K2.5 achieves 100% run_correct on Vera vs 86% Python; three models beat TypeScript on Vera, though results are single-run with high variance.

Hacker News Comment Review

  • Core skepticism centers on the no-names design: commenters argue LLMs succeed when more is explicit in text, not less, and that verbose structural references may hurt rather than help token prediction.
  • Several commenters note LLM coding ability tracks corpus size, pointing to Python/TypeScript dominance over Haskell as evidence that novel syntax will hit a cold-start problem regardless of formal properties.
  • A counter-thread sees real value in effect type systems specifically for agent sandboxing: capability proofs at compile time let you verify agent-written code cannot do IO before running it.

Notable Comments

  • @solomonb: proposes Hindley-Milner + Linear Types + Refinement Types + Delimited Continuation Effects + Unison-style content addressability as a more principled LLM-friendly stack.
  • @unignorant: highlights effect type systems as a strong fit for agent trust: “you know it can’t do IO” before runtime.

Original | Discuss on HN