pub trait Walkable<N: Scalar, const D: usize> {
// Required methods
fn first_point(&self) -> Option<Point<N, D>>;
fn last_point(&self) -> Option<Point<N, D>>;
// Provided method
fn walk(&self) -> Result<BBoxWalker<N, D>, &str> { ... }
}