anchor.diff:              ct = c.ct
           }
   
  -[<JavaScript>]
  +[<JavaScript; Pure>]
   let Combine (a: C<unit>, b: C<'T>) : C<'T> = 
       Bind (a, fun _ -> b)
   
  -[<JavaScript>]
  +[<JavaScript; Pure>]
   let Ignore (r: C<'T>): C<unit> =
       Bind (r, fun _ -> Return ())
   
  -[<JavaScript>]
  +[<JavaScript; Pure>]
   let Delay (mk: unit -> C<'T>) : C<'T> =
       checkCancel <| fun c ->
           try mk () c with e -> c.k (No e)
   
  -[<JavaScript>]
  +[<JavaScript; Pure>]
   let TryFinally (run: C<'T>, f: unit -> unit) =
       checkCancel <| fun c ->
           run {
  
positive.code:             fork (fun () -> run { k = accept i; ct = c.ct }))
              cs
  
  [<JavaScript>]
  let StartChild (r : C<'T>, t: Milliseconds option) : C<C<'T>> =
      checkCancel <| fun c ->
          let inTime = ref true
  
negative.code:             ct = c.ct
          }
  
  [<JavaScript; Pure>]
  let TryWith (r: C<'T>, f: exn -> C<'T>) =
      checkCancel <| fun c ->
          r {
  