class Bar { public K k; public V v; public Bar (K k, V v) { this.k = k; this.v = v; } } class Foo { public signal void bar (Bar item); public void fire (Bar item) { bar (item); } } bool fired; void on_bar (Bar item) { assert (item.k == 42); assert (item.v == "bar"); fired = true; } void main () { Foo foo = new Foo (); foo.bar.connect (on_bar); var bar = new Bar (42, "bar"); foo.fire (bar); assert (fired); }