anchor.diff:          Map2 (fun f x -> f x) f x
   
       let Join (V x as vx) =
  -        let rv = Var.Create U
  +        let rv = Var.Create (Now (Now vx))
           // rv.Depth <- 9 (* TODO: depth is actually dynamic *)
           async {
               while true do
  
positive.code:     let Const v =
          Create (Var.Create v)
  
      let Map fn (V x as view) =
          let rv = Var.CreateWithDepth U (Var.Depth x + 1)
          async {
              while true do
                  // observe current x
  
negative.code:         V rv
  
      let Map2 fn (V x as vx) (V y as vy) =
          let rv = Var.CreateWithDepth (fn (Now vx) (Now vy)) (max (Var.Depth x) (Var.Depth y) + 1)
          async {
              while true do
                  // observe current x and y
  