validate method
Validates value and returns a ValidationResult.
Returns Valid if the value passes validation, or Invalid/InvalidAll if it fails.
Implementation
@override
ValidationResult<T, E> validate(T value) {
final firstResult = first.validate(value);
switch (firstResult) {
case Valid(:final value):
return second.validate(value);
case Invalid() || InvalidAll():
return firstResult;
}
}