pub type List1<I> = Segment<I, Empty<<I as Value>::Type>>;
pub struct List1<I>(/* private fields */);