struct ExprA parsed expression with unresolved names and a half-open byte range.
Recursive operands are array-indirected so the AST remains a plain value. The parser records syntax only: typing, ownership adaptation, and effect resolution happen in later compiler phases.