/// <summary>
 /// Returns a data-producer that yeilds the values from the sequence, or which yields the default
 /// value for the Type if no data is produced.
 /// </summary>
 /// <param name="source">The source data-producer.</param>
 public static IDataProducer <TSource> DefaultIfEmpty <TSource>(this IDataProducer <TSource> source)
 {
     return(source.DefaultIfEmpty(default(TSource)));
 }