The SIG object is the representation of a signal.
Every SIG object is represented as an index, with each index being a valid
indexable value.
By default a SIG will generate it's index based simply on the value of the
function get_class.
The SIG object allows for unique signals by creating a child of SIG with the
property of _unique set as true.
.. note::
When a SIG is declared unique any index assigned to the SIG on construct
will be ignored.