var config = new Options() { DataSource = new DataSource(), }
assert(config.DataSource is null) // false
var config2 = config with { Take = null };
assert(config2.DataSource is null); // true
var config3 = config with { Take = null, DataSource = config.DataSource };
assert(config3.DataSource is null); // false
var config = new Options() { DataSource = new DataSource(), }
assert(config.DataSource is null) // false
var config2 = config with { Take = null };
assert(config2.DataSource is null); // true
var config3 = config with { Take = null, DataSource = config.DataSource };
assert(config3.DataSource is null); // false