+- the Maestro object and the corresponding S4U object have the same lifetime
+ (and share the same reference count).
+
+The ability to manipulate the objects through pointers and have the ability
+to use explicit reference count management is useful for creating C wrappers
+to the S4U and should play nicely with other language bindings (such as
+SWIG-based ones).
+
+Some objects currently live for the whole duration of the simulation and do
+not have reference counts. We still provide dummy `intrusive_ptr_add_ref(p)`,
+`intrusive_ptr_release(p)` and `FooPtr` for consistency.
+
+In many cases, we try to have an API which is consistent with the API or
+corresponding C++ standard classes. For example, the methods of
+`simgrid::s4u::Mutex` are based on [`std::mutex`](http://en.cppreference.com/w/cpp/thread/mutex).
+This has several benefits:
+
+ - we use a proven interface with a well defined and documented semantic;
+
+ - the interface is easy to understand and remember for people used to the C++
+ standard interface;
+
+ - we can use some standard C++ algorithms and helper classes with our types
+ (`simgrid::s4u::Mutex` can be used with
+ [`std::lock`](http://en.cppreference.com/w/cpp/thread/lock),
+ [`std::unique_lock`](http://en.cppreference.com/w/cpp/thread/unique_lock),
+ etc.).
+
+Example of `simgrid::s4u::Actor`: