pub trait NodeTrait:
Identifiable
+ Write
+ Display {
// Required methods
fn span(&self) -> Span;
fn children(&self) -> Option<&BTreeMap<usize, Node>>;
// Provided methods
fn has_children(&self) -> bool { ... }
fn child(&self, id: usize) -> Option<&Node> { ... }
}