var myLocked = Locked(value: Int(5), key: 5)
try myLocked.access(key: 5) { $0 = 10 }The Reference wrapper class for any Type in Swift makes it possible to handle objects from structs, as if they were classes (e.g. imitates behavior of Java references.)
The ValueType wrapper on the other hand mimics the behavior of structs for class objects.
You can also wrap the same type into its wrapper, but this doesn't make sense, even though it is possible.