anchor.diff:          
           let genTargetInfoOpt =
               if generateTargetNow then
  -                // Here we are generating the target immediately
  -                cgbuf.SetMarkToHereIfNecessary inplabOpt
                   Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel)
               else
                   None
  
positive.code:     match IntMap.tryFind targetIdx targetInfos with
      | Some (targetInfo, isTargetPostponed) ->
  
          let (_, targetMarkAfterBinds: Mark, eenvAtTarget, _, _, _, _, _, _, _) = targetInfo
  
          // We have encountered this target before. See if we should generate it now
          let targetCount = targetCounts.[targetIdx]
          let generateTargetNow = isTargetPostponed && cenv.opts.localOptimizationsAreOn && targetCount = 1
          targetCounts.[targetIdx] <- targetCount - 1
  
          // If not binding anything we can go directly to the targetMarkAfterBinds point
          // This is useful to avoid lots of branches e.g. in match A | B | C -> e
          // In this case each case will just go straight to "e"
          if isNil vs then
              cgbuf.EmitBranchIfNecessary (inplabOpt, targetMarkAfterBinds)
          else
              cgbuf.SetMarkToHereIfNecessary inplabOpt
              repeatSP()
  
              (vs, es) ||> List.iter2 (fun v e ->
  
                  // Emit the expression
                  GenBindingRhs cenv cgbuf eenv SPSuppress v e
                  GenStoreVal cenv cgbuf eenvAtTarget v.Range v)
  
  
negative.code:                 Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel)
              else
                  // Here we are postponing the generation of the target.
                  cgbuf.SetMarkOrEmitBranchIfNecessary (inplabOpt, targetMarkBeforeBinds)
                  None
  
          let isTargetPostponed = not generateTargetNow
  