&gt; On the Rust end - the whole concept of the borrow checker was borrowed from Cyclone<p>Not really. That&#x27;s the lifetime system, which is not the same thing. &quot;Existential Types for Imperative Languages&quot;, also by Dan Grossman, explains more of the motivation, but the borrow check is a hybrid of the two solutions he presents.<p>Borrowing itself is something with a long history, but the whole &quot;unique loan paths&quot; thing makes Rust&#x27;s solution distinct from a lot of the stuff you find in the research literature.