2 using System.Collections.Generic;
 
    5 using System.Threading.Tasks;
 
   10     public struct WorkingCopy<T>
 
   12         private readonly T _original;
 
   13         private readonly T _copy;
 
   23             get { 
return _original; }
 
   32     public static class WorkingCopyExtension
 
   34         public static WorkingCopy<T> WorkingCopy<T>(
this T original, Func<T, T> cloner)
 
   36             return new WorkingCopy<T>(original, cloner(original));
 
WorkingCopy(T original, T copy)