pub trait Children<IdX, T>: Index<IdX, Output = T> + IterableChildren<T> {
// Required methods
fn child_count(&self) -> IdX;
fn get(&self, i: IdX) -> Option<&T>;
fn rev(&self, i: IdX) -> Option<&T>;
fn after(&self, i: IdX) -> &Self;
fn before(&self, i: IdX) -> &Self;
fn between(&self, start: IdX, end: IdX) -> &Self;
fn inclusive(&self, start: IdX, end: IdX) -> &Self;
}