&quot;X isn&#x27;t possible because of Turing completeness&quot; is almost always wrong. GC is another &quot;impossible&quot; task, yet those are everywhere.<p>The real goal is to find a strategy that works well enough, often enough. Dynamic GC gives up perfect collection (aiming to be merely good enough). Rust&#x27;s data race guarantees prevent safely expressing some subset of correct programs.<p>Whether deadlock prevention can be done nicely enough for general case usage is an open question.