pub trait Component<D: Dialect>: Display + FmtLeft {
// Required methods
fn item(&self) -> Item<D>;
fn is_const(&self) -> bool;
fn index(&self, index: usize) -> IndexedVariable<D>;
// Provided method
fn elem(&self) -> Elem<D> { ... }
}