using Records;

var unlabelled = new OptionallyLabelledItem();
var labelled = new OptionallyLabelledItem
{
    Label = "Nowy, poprawiony!"
};

var unlabelledProduct = new Product("książka");
var labelledProduct = new Product("koszula")
{
    Label = "za połowę ceny"
};

Console.WriteLine(unlabelled);
Console.WriteLine(labelled);
Console.WriteLine(unlabelledProduct);
Console.WriteLine(labelledProduct);

var commonModelT = new FordModelT();
var lateModelT = new FordModelT { Color = "zielony" };

Console.WriteLine(commonModelT);
Console.WriteLine(lateModelT);

OptionallyLabelled Discount(OptionallyLabelled item)
{
    return item with
    {
        Label = "60% taniej!"
    };
}

Console.WriteLine(Discount(new OptionallyLabelledItem()));
Console.WriteLine(Discount(new Product("Sweter")));

Console.WriteLine(new LabelledDemographic("głośny"));