Data equality & toString
// In this example, `Age` is a ValueObject that is invalid if the age
// is < 18, with as a failure `AgeLegalFailure.minor`
final age1 = Age(20);
final age2 = Age(10);
final age3 = Age(10);
print(age1);
// ValidAge(value: 20)
print(age2);
// InvalidAgeValue(failures: [AgeLegalFailure.minor()], value: 10)
print(age1 == age2);
// false
print(age2 == age3);
// true