fn program(&mut self) -> WeldResult<Program> {
        let type_aliases = self.type_aliases()?;
        let macros = self.macros()?;
        let body = self.expr()?;
        Ok(Program {
            macros,
            type_aliases,
            body: *body,
        })
    }
Parse a program (optional type aliases + optional macros + one body expression) starting at the current position.
weld/src/syntax/parser.rs