So, consider both formulas and the meaning of the word valid in both cases.
The first formula is a valid definition of factorials.
The second formula is a valid expression of the commutativity of addition of integers.
But it is not a definition of the addition of integers.
She is also a valid expression of the commutativity of multiplication of integers or of addition of real numbers for instance.
Look at the type of add
It is fully polymorphic then it does not refer to a type whose values could represent integers.
Yet add is (bound to) a well-typed functional value!
Therefore it can be applied ... but never returns a result.
Its range is empty, that is, it is defined nowhere.
Thus it is useless.
|