fn references_no_free_variable(symbols: &SymbolTable, bound: &[String], expr: &Expr) -> bool {
Expr::List(elems) if matches!(elems.first(), Some(Expr::Symbol(h)) if h.eq_ignore_ascii_case("quote")) => {
Expr::List(elems) if matches!(elems.first(), Some(Expr::Symbol(h)) if resolves_to_macro(symbols, h)) => {
pub(super) fn resolve_apply_designator(symbols: &mut SymbolTable, arg: &Expr) -> Result<Expr> {