pub trait CheckedArith: 'static + Copy + Clone + Debug {
fn checked_add(self, rhs: Self) -> Result<Self, CoordinateOverflow>;
fn checked_sub(self, rhs: Self) -> Result<Self, CoordinateOverflow>;
fn checked_neg(self) -> Result<Self, CoordinateOverflow>;
}