+
+ template<class S> class signal;
+
+ /** A signal/slot mechanism
+ *
+ * S is expected to be the function signature of the signal.
+ * I'm not sure we need a return value (it is currently ignored).
+ * If we don't we might use `signal<P1, P2, ...>` instead.
+ */