The abstract syntax tree (ast) for a Leo program.
This module contains the [Ast] type, a wrapper around the [Program] type.
The [Ast] type is intended to be parsed and modified by different passes
of the Leo compiler. The Leo compiler can generate a set of R1CS constraints from any [Ast].