Thoughts
To elaborate on my Rust thought the other day—because of the way that lifetimes and moving both work, adding a line that reads a variable
or calls a read-only function on that variable can introduce a compiler error, by either moving the value out of the variable, or using the variable in a closure with a greater lifetime.
It's 100% compile time, so it delivers on the Rust promise in that sense, but it's difficult to reason about the code.