June 2019, rev. October 2019
In a language that makes multiple copies instead of use garbage collection, assignment of locks needs an extra check. eg in:
That's because it shouldn't be possible to copy locks. A lock with multiple copies floating around wouldn't be exclusive. So when a copy is made, the language has to distinguish between the original lock and a reference to it. The copy of the lock must be a reference to the original lock.
In a language that uses one reference only instead of use garbage collection, I don't see it possible to assign locks and distinguish between the original lock and a reference to it without making a copy. One reference only must copy locks.