@voddan: I don't want it as a performance optimization, I want it as a compile-time correctness check. As in, I want to be able to say "give me an error if I try to mutate state outside of this closure". It improves readability if future maintainers can come in and immediately know which closures have an opportunity to mutate state and which don't