Alternatively:
- a practical test should not require its own tests
because of the risk of infinite indeterminate regress:
test1
needstest2
which needstest3
which needstest4
which needs …
which isn’t practical.
Similarly:
- a practical type system should not require its own type system
because there really is an infinite hierarchy of types!
Trying to solve the problems in one type system by introducing another type system makes as much sense as:
-
trying to solve the problems in one test by introducing another test;
-
trying to solve the problems in one testsuite by introducing another testsuite.
Adding more tests, testsuites, and type systems means more code, and more code means more bugs.