pub trait TyLoweringInferVarsCtx<'db> {
// Required methods
fn next_ty_var(&mut self, span: Span) -> Ty<'db>;
fn next_const_var(&mut self, span: Span) -> Const<'db>;
fn next_region_var(&mut self, span: Span) -> Region<'db>;
// Provided method
fn as_table(&mut self) -> Option<&mut InferenceTable<'db>> { ... }
}