There's sync::Mutex<T>, sync::raw::Mutex and sync::mutex::Mutex. The latter two have similar signatures (no contained data) and similar but slightly different APIs. The docs don't describe the difference in detail.
This is pretty confusing (renaming and/or documenting better would be a good fix).
cc @alexcrichton