The PureAttribute documentation says:
Indicates that a type or method is pure, that is, it does not make any visible state changes
Is this the only requirement of a Pure function under in Microsoft Code Contracts?
And; does this model assume that Exceptions are results (as opposed to side-effects)?
I ask because, in a more general context, a pure function also implies that the output is only dependent upon the input; ie. it cannot be the result of I/O or a stochastic function.
One might also argue that a pure function always yields a value to the outer expression, possibly in opposition to Exceptions.
If [Pure] is indeed limited to the less restrictive form, is there an equivalent of a "[FunctionalPure]"?