anchor.diff:          let czero : Cloud<unit> = mkCloud zero
           member __.Return (t : 'T) : Cloud<'T> = mkCloud <| ret t
           member __.Zero () : Cloud<unit> = czero
  -        member __.Delay (f : unit -> Cloud<'T>) : Cloud<'T> = mkCloud <| ExplicitDelayWrapper<_,_>(f).Func
  +        member __.Delay (f : unit -> Cloud<'T>) : Cloud<'T> = mkCloud <| mkExplicitDelay f
           member __.ReturnFrom (c : Cloud<'T>) : Cloud<'T> = c
           member __.ReturnFrom (c : Async<'T>) : Cloud<'T> = mkCloud <| ofAsync c
           member __.Combine(f : Cloud<unit>, g : Cloud<'T>) : Cloud<'T> = mkCloud <| combine f.Body g.Body
  
positive.code:         else
              cont.Choice3(ctx, protect f ())
  
      type ExplicitDelayWrapper<'T, 'S when 'S :> Cloud<'T>>(f : unit -> 'S) =
          inherit FSharpFunc<ExecutionContext, Continuation<'T> -> unit> ()
          override __.Invoke(ctx : ExecutionContext) = fun c -> delay f ctx c
          member x.Func = x :> obj :?> Body<'T>
  
      let inline bind (f : Body<'T>) (g : 'T -> #Cloud<'S>) : Body<'S> =
          fun ctx cont ->
  
negative.code:         let lzero : Local<unit> = mkLocal zero
          member __.Return (t : 'T) : Local<'T> = mkLocal <| ret t
          member __.Zero () : Local<unit> = lzero
          member __.Delay (f : unit -> Local<'T>) : Local<'T> = mkLocal <| mkExplicitDelay f
          member __.ReturnFrom (c : Local<'T>) : Local<'T> = c
          member __.ReturnFrom (c : Async<'T>) : Local<'T> = mkLocal (ofAsync c)
          member __.Combine(f : Local<unit>, g : Local<'T>) : Local<'T> = mkLocal <| combine f.Body g.Body
  