returns true if listener is assigned
disconnect all listeners
add listener
remove listener
call all listeners; for signals having non-void return type, stop iterating when first return value is nonzero
replace all previously assigned listeners with new one (if null passed, remove all listeners)
call all listeners; for signals having non-void return type, stop iterating when first return value is nonzero
Provides ~= syntax for connecting to this Signal
Multiple listeners; implicitly specified return and parameter types