/// <summary>
 /// Returns a data-producer that yields the first instance of each unique
 /// value in the sequence; subsequent identical values are ignored.
 /// </summary>
 /// <param name="source">The data-producer</param>
 /// <remarks>This will force the first instance of each unique value to be buffered</remarks>
 public static IDataProducer <TSource> Distinct <TSource>(this IDataProducer <TSource> source)
 {
     return(source.Distinct(EqualityComparer <TSource> .Default));
 }