title: Need holistic explanation about Rust's cell and reference counted types
body: <p>There are several wrapper types in the Rust standard library:</p>
  
  <ul>
  <li>The cells in the <a href="https://doc.rust-lang.org/std/cell/index.html#structs" rel="noreferrer"><code>std::cell</code> module</a>: <a href="https://doc.rust-lang.org/std/cell/struct.Cell.html" rel="noreferrer"><code>Cell</code></a> and <a href="https://doc.rust-lang.org/std/cell/struct.RefCell.html" rel="noreferrer"><code>RefCell</code></a></li>
  <li>The reference-counted wrappers, like <a href="https://doc.rust-lang.org/std/rc/struct.Rc.html" rel="noreferrer"><code>Rc</code></a> and <a href="https://doc.rust-lang.org/std/sync/struct.Arc.html" rel="noreferrer"><code>Arc</code></a>.</li>
  <li>The types in the <a href="https://doc.rust-lang.org/std/sync/index.html" rel="noreferrer"><code>std::sync</code> module</a>: <a href="https://doc.rust-lang.org/std/sync/struct.Mutex.html" rel="noreferrer"><code>Mutex</code></a> or <a href="https://doc.rust-lang.org/std/sync/atomic/struct.AtomicBool.html" rel="noreferrer"><code>AtomicBool</code></a> for example</li>
  </ul>
  
  <p>As I understand it, these are wrappers which provide further possibilities than a simple reference. While I understand some basics, I cannot  see the whole picture.</p>
  
  <p>What do they do exactly? Do cells and reference-counted families provide orthogonal or similar features?</p>