pub trait Array<T: Value<Self, O, N>, O: Object<T, Self, N>, N: Null<T, Self, O>>where Self: Sized,{ fn push(&mut self, v: T); fn new() -> Self; }