anchor.diff:          let scope = Ag.getContext()
           fun v -> Ag.useScope scope (fun () -> f v)
   
  -    let private scoped2 (f : 'a -> 'b -> 'c) =
  -        let scope = Ag.getContext()
  -        fun a b -> Ag.useScope scope (fun () -> f a b)
   
       let private callbackTable = ConditionalWeakTable<IMod, ConcurrentHashSet<IDisposable>>()
       /// <summary>
  
positive.code:             | (false, true) -> 
                  map (fun a -> f a (m2.GetValue())) m1
              | (false, false) ->
                  let f = scoped2 f
                  let res = LazyMod(fun () -> f (m1.GetValue()) (m2.GetValue()))
                  m1.AddOutput res
                  m2.AddOutput res
  
negative.code:         if m.IsConstant then
              m.GetValue() |> f :> IMod<_>
          else
              let inner : ref<Option<'a * IMod<'b>>> = ref None
  
  
  