anchor.diff:                          next <- false
                       ()
               let next = 
  -                let valueReady = ref true
  +                let continueFlag = ref true
                   (fun () ->
  -                    if not !valueReady then
  +                    if not !continueFlag then
                           false
                       else
                           while firstNext () && not !firstValueReady do ()
  
positive.code:                     i <- i + 1
              let next = 
                  let i = ref 0
                  let valueReady = ref true
                  fun () -> 
                      if not !valueReady || !i >= source.Count then
                          false
                      else
                          valueReady := iterf source.[!i] 
                          incr i
                          true
              (bulk, next)
  
negative.code:                         if !firstValueReady && !secondValueReady then
                              firstValueReady := false
                              secondValueReady := false
                              continueFlag := iterf (f !firstCurrent !secondCurrent)
                              true
                          else
                              false)
  