Direct connection to an object.
Indirect connection to an object.
Disconnect an indirect connection.
Disconnect all connections to obj.
Disconnect a direct connection.
Connect with strong ref semantics.
Disconnect a connection made with strongConnect.
The signal implementation, not providing an emit method.
The idea is to instantiate a Signal privately and provide a public accessor method for accessing the contained RestrictedSignal. You can use the signal string mixin, which does exactly that.