-//@ You may be curious whether there is a type that's `Sync`, but not `Send`. There are indeed rather esoteric examples
-//@ of such types, but that's not a topic I want to go into. In case you are curious, there's a
-//@ [Rust RFC](https://github.com/rust-lang/rfcs/blob/master/text/0458-send-improvements.md), which contains a type `RcMut` that would be `Sync` and not `Send`.
-//@ You may also be interested in [this blog post](https://huonw.github.io/blog/2015/02/some-notes-on-send-and-sync/) on the topic.
-
-// FIXME TODO some old outdated explanation FIXME TODO
-
-//@ [`RefCell`](http://doc.rust-lang.org/beta/std/cell/struct.RefCell.html)
-//@ [`is very much like `RwLock`, but it's not thread-safe: "Locking" is done without atomic operations.
-//@ One can also see it as a dynamically checked version of Rust's usual borrowing rules. You have to explicitly say
-//@ when you want to borrow the data in there shared, or mutably, and Rust will complain at run-time if you have
-//@ a mutable borrow while any other borrow is active. You can then write programs that Rust may otherwise not
-//@ accept. Sending a shared borrow to this to another thread is dangerous, as the checks are not performed in
-//@ a thread-safe manner. However, sending the *entire* `RefCell` is okay, because there's only ever one owner, and all
-//@ we need to ensure is that everybody attempting to borrow is in the same thread as the owner. <br/>
-//@ [`Cell<T>`](http://doc.rust-lang.org/beta/std/cell/struct.Cell.html) is like a stripped-down version of `RefCell<T>`: It doesn't allow
-//@ you to borrow its content. Instead, it has a methods `get` and `set` to change the value stored in the cell, and to copy it out.
-//@ For obvious reasons, this requires `T` to be `Copy`.
+//@ Almost all the types we saw so far are `Sync`, with the exception of `Rc`. Remember that a
+//@ shared reference is good enough for cloning, and we don't want other threads to clone our local
+//@ `Rc` (they would race for updating the reference count), so it must not be `Sync`. The rule of
+//@ `Mutex` is to enforce synchronization, so it should not be entirely surprising that `Mutex<T>`
+//@ is `Send` *and* `Sync` provided that `T` is `Send`.