Interface ValueDomain<D extends ValueDomain<D>>