My point is that you are right: the concerns are orthogonal. If you want to catch exceptions from your broken functions you can wrap them, as shown above.
I don't see the problem because I don't understand the goal. Do you want the effects caught or uncaught? Is the problem that two definitions that ought to be equivalent lead in one case to it being caught and in the other uncaught? If you want finer types, you can have them.
-
-
-
OK. Another point I'd make is that new effects add new distinctions so you can't lift pure code into effectful code in a unique way up to the pure system's equivalence laws. To add new effects to a system you must in general keep the source code, and often fix that source code.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!