Interface CodeItem<I extends CodeItem<I,​R,​S,​D>,​R extends Comparable<?> & Serializable,​S extends EnumeratedDomainSubset<S,​D>,​D extends ValueDomain>