Gathering callbacks.
Reflex::Role::Object Has the cb() member. BUILD Maps constructor parameters to callbacks. Maps callback types to observers: discrete callbacks = discrete observers role callbacks = role observers no callbacks = unobserved (promise?)
Reflex::Role::Object::BUILD calls cb_gather()
emit() syntax is preserved. 1. Role::Object handles it normally. 2. Local delivery is through the callback object.
$self->emit( event => \%args );
Callback constructor parameter.
Role constructor parameter.
Promise.
Observer.
Promise Again
The current syntax is too verbose.
$watcher has no purpose except to call observe().
Perhaps $watcher could be replaced by a Promise class that observes and then returns events? Similar to PromiseThing in eg-25-rcb-promise.pl?