+ @defgroup MSG_examples MSG examples
+ @ingroup MSG_API
+ @brief Find the MSG example fitting your needs from the extensive set provided in the archive.
+
+ - @ref msg_ex_basic
+ - @ref msg_ex_async
+ - @ref msg_ex_process
+ - @ref msg_ex_tracing
+ - @ref msg_ex_tracing_user_variables
+ - @ref msg_ex_models
+ - @ref msg_ex_io
+ - @ref msg_ex_actions
+ - @ref msg_ex_full_apps
+ - @ref msg_ex_misc
+
+@section msg_ex_basic Basic examples and features
+
+ - <b>Ping Pong</b>: @ref examples/msg/app-pingpong/app-pingpong.c\n
+ It's hard to think of a simpler example: it is just sending one
+ message back and forth.
+ The tesh file laying in the directory show how to start the
+ simulator binary, enlighting how to pass options to the simulators
+ (as detailed in Section \ref options).
+
+ - <b>Token Ring</b>.
+ @ref examples/msg/app-token-ring/app-token-ring.c\n
+ Classical communication pattern, where a token is exchanged
+ along a ring to reach every participant.
+ The tesh file laying in the directory shows how to run the same
+ example on different virtual platforms.
+
+ - <b>Master Workers</b>.
+ @ref examples/msg/app-masterworker/app-masterworker.c\n
+ Another good old example, where one Master process has a bunch of
+ task to dispatch to a set of several Worker processes. It is fully
+ commented in @ref MSG_ex_master_worker.
+
+@section msg_ex_async Asynchronous communications
+
+In addition to the fully documented example of @ref
+MSG_ex_asynchronous_communications, there are several other examples
+shipped in the archive:
+
+ - <b>Basic asynchronous communications</b>.
+ @ref examples/msg/async-wait/async-wait.c \n
+ Illustrates how to have non-blocking communications, that are
+ communications running in the background leaving the process free
+ to do something else during their completion. The main functions
+ involved are @ref MSG_task_isend, @ref MSG_task_irecv, and @ref
+ MSG_comm_wait.
+
+ - <b>Waiting for all communications in a set</b>.
+ @ref examples/msg/async-waitall/async-waitall.c\n
+ The @ref MSG_comm_waitall function is useful when you want to block
+ until all activities in a given set have completed.
+
+ - <b>Waiting for the first completed communication in a set</b>.
+ @ref examples/msg/async-waitall/async-waitany.c\n
+ The @ref MSG_comm_waitany function is useful when you want to block
+ until one activity of the set completes, no matter which terminates
+ first.
+
+*/
+
+As a human, you can stop reading at this point. The rest is garbage:
+
+Every example must be listed in the following, but it's not possible
+to move this content upper as each example directive seems to eat the
+next doxygen commands.
+
+
+/**
+@defgroup MSG_ex_examples ignored
+@example examples/msg/app-pingpong/app-pingpong.c
+@example examples/msg/app-token-ring/app-token-ring.c
+@example examples/msg/app-masterworker/app-masterworker.c
+
+@example examples/msg/async-wait/async-wait.c
+@example examples/msg/async-waitall/async-waitall.c
+@example examples/msg/async-waitall/async-waitany.c
+*/