public ITypeDescriptor CloneAndMapNestedTypes(ITypeDescriptorCallbacks typeSerializers, Func<ITypeDescriptor, ITypeDescriptor> map) { var itemDesc = map(_itemDescriptor); if (_typeSerializers == typeSerializers && itemDesc == _itemDescriptor) return this; return new ListTypeDescriptor(typeSerializers, itemDesc); }