On Thursday, 21 November 2013 at 22:51:43 UTC, inout wrote:
What if you have more that just one validation, e.g. Positive and LessThan42? Is Positive!LessThan42!int the same type as LessThan42!Positive!int? Implicitly convertible?

Allow multiple validation functions. Then a Validated type is only valid if validationFunction1(val) && validationFunction2(val) &&...

Validated!(isPositive, lessThan42, int) validatedInt = validate!(isPositive, lessThan42)(34);
//Do stuff with validatedInt

Or just pass a function that validates that the int is both positive and less than 42, which would be much simpler.

...

It also doesn't involve creating new types.

Creating new types is what allows us to provide static, compiler-verified guarantees.

Reply via email to