pub trait WithType: WithPosition {
// Required methods
fn typ(&self) -> &Type;
fn set_type(&mut self, typ: Type);
fn resolve_type_children(
&mut self,
entries: &TypeEntries,
) -> Result<(), Error>;
fn check_interval_children(&self, problem: &Problem) -> Result<(), Error>;
// Provided methods
fn resolve_type(&mut self, entries: &TypeEntries) -> Result<(), Error> { ... }
fn check_interval(&self, problem: &Problem) -> Result<(), Error> { ... }
}