anchor.diff:          let iteri f (source : seq<'T>) = 
               checkNonNull "source" source
               use e = source.GetEnumerator()
  +            let f = OptimizedClosures.FSharpFunc<_,_,_>.Adapt(f)
               let mutable i = 0 
               while e.MoveNext() do
  -                f i e.Current;
  +                f.Invoke(i, e.Current);
                   i <- i + 1;
   
           [<CompiledName("Exists")>]
  
positive.code:                 if c <> 0 then c else
                  if not e1ok || not e2ok then 0 
                  else
                      let c = f e1.Current e2.Current 
                      if c <> 0 then c else
                      go () 
              go()
  
negative.code:             checkNonNull "source2" source2
              use e1 = source1.GetEnumerator()
              use e2 = source2.GetEnumerator()
              let f = OptimizedClosures.FSharpFunc<_,_,_>.Adapt(f)
              let rec go () = 
                  let e1ok = e1.MoveNext() 
                  let e2ok = e2.MoveNext() 
  