anchor.diff:          let awaited = Id.New "$await"
           let doneLabel = Id.New "$done"
           let setStatus s = ItemSet(Var awaited, Value (String "exc"), !~(Int s))
  -        let start = Application(ItemGet(Var awaited, Value (String "Start")), [], false, Some 0)
  +        let start = Call(Some (Var awaited), NonGeneric Definitions.Task, TaskMethod.Start, [])
           let exc = ItemGet(Var awaited, Value (String "exc"))
           Sequential [
               NewVar(awaited, this.TransformExpression a)
  
positive.code:             if IgnoreExprSourcePos a <> Undefined then
                  yield ExprStatement <| ItemSet(Var task, Value (String "result"), a)
              yield ExprStatement <| ItemSet(Var task, Value (String "status"), Value (Int (int System.Threading.Tasks.TaskStatus.RanToCompletion)))
              yield ExprStatement <| Application(ItemGet(Var task, Value (String "RunContinuations")), [], false, Some 0)
              yield Return (Value (Bool false))         
          ]
  
  
negative.code: 
      override this.Yield(v) =
          Block [
              ExprStatement <| Call(Some v, NonGeneric Definitions.Task, TaskMethod.OnCompleted, [ Var run ])
              Return (Value (Bool true))         
          ]
  
  