class Individual : Object
{
  public GLib.List<Object> attributes;
}
class Aggregator : Object
{
  public signal void my_signal (GLib.List<Individual>? added);
}
public class MyTest : Object
{
  public void start ()
    {
      var aggregator = new Aggregator ();
      Individual[] array = new Individual[0];
      aggregator.my_signal.connect ((added) =>
        {
          foreach (Individual i in added)
            array += i;
        });

      aggregator.my_signal.connect ((added) =>
        {
          Individual i = added.nth_data (0);
          Idle.add (() =>
            {
              message ("%u", i.attributes.length ());
              return false;
            });
        });
    }
}
public int main (string[] args)
{
  MyTest my_test = new MyTest ();
  my_test.start ();
  return 0;
}
