A Rust macro for generating new identifiers (names of variables, functions, traits, etc) by concatenating one or more arbitrary parts and applying other manipulations.
usecrate::ast::Ast;usecrate::error::Error;/// A syntactic structure that can be expanded (desugared) into a more primitive form.
////// Serves as a backbone for the expand-phase.
pubtraitExpand: Ast {typeExpanded: Ast;fnexpand(&self)->Result<Self::Expanded, Error>;}