> If (a + b) throws an exception, it HAS NO RESULT. Yes it has: the exception itself (at least in a language where exceptions are first-class). As Fergus said, the output type of a function (normally) returning an xxx and (possibly) throwing an eee is the discriminated union of xxx and eee. Or did I misconstrue his posting? -- O.L.