anchor.diff:      let private template = RecordTemplate.Define<CancellationEntry>()
   
       let isNotCancelled = template.PrecomputeConditionalExpr <@ fun c -> c.IsCancellationRequested = false @>
  -    let cancelOp = template.PrecomputeUpdateExpr <@ fun c -> { c with IsCancellationRequested = true ; Children = [placeHolder] } @>
  +    let cancelOp = template.PrecomputeUpdateExpr <@ fun c -> { c with IsCancellationRequested = true } @>
       let addChild = template.PrecomputeUpdateExpr <@ fun ch c -> { c with Children = ch :: c.Children } @>
   
   [<Sealed; DataContract>]
  
positive.code: ﻿namespace MBrace.AWS.Runtime
  
  open System
  open System.Collections.Generic
  open System.Runtime.Serialization
  
  open MBrace.Core.Internals
  
negative.code:         member x.UUID: string = uuid
  
          member x.Cancel(): Async<unit> = async {
              let table = getTable()
              let visited = new ConcurrentDictionary<string, unit>()
              let rec walk id = async {
                  if visited.TryAdd(id, ()) then
                      let! e = table.UpdateItemAsync(TableKey.Hash id, cancelOp, returnLatest = false)
                      if e.IsCancellationRequested then ()
                      else
                          do! e.Children' |> Seq.map walk |> Async.Parallel |> Async.Ignore
              }
  
  