Challenge 2: A with-Expression Leaving the Original Untouched — Possible Solution ==================================================================== Program.cs: public record Product(string Name, decimal Price); var original = new Product("Widget", 9.99m); var discounted = original with { Price = 7.99m }; Console.WriteLine(original); Console.WriteLine(discounted); Output: Product { Name = Widget, Price = 9.99 } Product { Name = Widget, Price = 7.99 } Explanation: `original with { Price = 7.99m }` creates an entirely new Product instance -- discounted -- copying Name unchanged from original and replacing only Price. original itself is never modified; it still reports its original 9.99 price after the with-expression runs, confirming with produces a genuinely separate object rather than mutating the source record in place. WHY THIS WORKS AS AN ANSWER ------------------------------ This demonstrates the chapter's own core with-expression claim directly -- a new instance is produced with one property changed, while the original remains completely unaffected.