/// <summary>
 /// Returns a future to the first value from a sequence, or the default for that type
 /// if no value is produced.
 /// </summary>
 /// <param name="source">The source data-producer.</param>
 public static IFuture <TSource> FirstOrDefault <TSource>(this IDataProducer <TSource> source)
 {
     return(source.FirstOrDefault(x => true));
 }