title: Using Task.Unwrap to get to the inner task
body: <p>I'm trying to access the inner task with <code>Task.Unwrap</code> and I'm getting this error:</p>
  
  <pre>
  System.InvalidCastException: Unable to cast object of type 
  'System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.TaskExtensions+VoidResult]' 
  to type 'System.Threading.Tasks.Task`1[System.Boolean]'.
  </pre>
  
  <p>To reproduce the problem:</p>
  
  <pre><code>    static void Main(string[] args)
      {
          var tcs = new TaskCompletionSource&lt;bool&gt;();
          tcs.SetResult(true);
          Task task1 = tcs.Task;
  
          Task&lt;Task&gt; task2 = task1.ContinueWith(
              (t) =&gt; t, TaskContinuationOptions.ExecuteSynchronously);
  
          Task task3 = task2.Unwrap();
  
          try
          {
              Task&lt;bool&gt; task4 = (Task&lt;bool&gt;)task3;
  
              Console.WriteLine(task4.Result.ToString());
          }
          catch (Exception e)
          {
              Console.WriteLine(e.ToString());
          }
          Console.ReadLine();
      }
  </code></pre>
  
  <p>In the real project, I'm provided with a list of <code>Task&lt;Task&gt;</code>, where each inner task is a generic task. Can I not use <code>Unwrap</code> to access the inner tasks and their results?</p>