anchor.diff:          /// <summary>
           ///     Gets the current cancellation token.
           /// </summary>
  -        static member CancellationToken = Body(fun ctx -> ctx.scont ctx.CancellationToken)
  +        static member CancellationToken = 
  +            Body(fun ctx -> if ctx.IsCancellationRequested then ctx.Cancel() else ctx.scont ctx.CancellationToken)
   
           /// <summary>
           ///     Raise an exception.
  
positive.code:         /// </summary>
          /// <param name="cloudWorkflow">Cloud workflow to be executed.</param>
          /// <param name="ctx">Local execution context.</param>
          static member StartImmediate(cloudWorkflow : Cloud<'T>, ctx : Context<'T>) = let (Body f) = cloudWorkflow in f ctx
  
          /// <summary>
          ///     Starts provided cloud workflow in the thread pool.
  
negative.code:         ///     Catch exception from given cloud workflow.
          /// </summary>
          /// <param name="cloudWorkflow"></param>
          static member Catch(cloudWorkflow : Cloud<'T>) : Cloud<Choice<'T, exn>> = cloud {
              try
                  let! res = cloudWorkflow
                  return Choice1Of2 res
  