/// <summary>
 /// Returns the last element of a sequence, as a future value.
 /// </summary>
 /// <typeparam name="TSource">The type of the elements of source.</typeparam>
 /// <param name="source">The sequence to return the last element of.</param>
 /// <returns>The last element in the specified sequence, as a future value.
 /// The actual value can only be retrieved after the source has indicated the end
 /// of its data.
 /// </returns>
 public static IFuture <TSource> Last <TSource>(this IDataProducer <TSource> source)
 {
     return(source.Last(x => true));
 }