protected override IStream <Correlated <TIn> > CreateOutputStream(DistinctCorrelatedArgs <TIn, TGroupingKey> args)
 {
     return(base.CreateUnsortedStream(args.InputStream.Observable.Aggregate(i => new HashSet <Guid>(), i => args.GetGroupingKey(i.Row), (a, i) =>
     {
         a.UnionWith(i.CorrelationKeys);
         return a;
     }, (i, k, a) => new Correlated <TIn> {
         Row = i.Row, CorrelationKeys = a
     })));
 }
 public DistinctCorrelatedStreamNode(string name, DistinctCorrelatedArgs <TIn, TGroupingKey> args) : base(name, args)
 {
 }