//
// * There is always exactly one owner of a piece of data
// * If there is an active mutable borrow, then nobody else can have active access to the data
// * If there is an active shared borrow, then every other active access to the data is also a shared borrow
//
// As it turns out, combined with the abstraction facilities of Rust, this is a very powerful mechanism
//
// * There is always exactly one owner of a piece of data
// * If there is an active mutable borrow, then nobody else can have active access to the data
// * If there is an active shared borrow, then every other active access to the data is also a shared borrow
//
// As it turns out, combined with the abstraction facilities of Rust, this is a very powerful mechanism