Trait Num
hetseq
pub trait Num { type S: Num; type P: Num; fn value() -> usize; }
Type level number
type S: Num
Next number
type P: Num
Previous number
fn value() -> usize
Convert to value level
impl Num for Z
impl<N: Num> Num for S<N>
impl<N: Num> Num for P<N>