anchor.diff:          | None -> ()
           | Some inplab -> cgbuf.SetMarkToHere inplab
   
  -    member cgbuf.EmitBranchIfNecessary (inplabOpt: Mark option, target: Mark) =
  +    member cgbuf.SetMarkOrEmitBranchIfNecessary (inplabOpt: Mark option, target: Mark) =
           match inplabOpt with
           | None -> cgbuf.EmitInstr (pop 0, Push0, I_br target.CodeLabel)
           | Some inplab -> cgbuf.SetMark(inplab, target)
  
positive.code:                 Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel)
              else
                  // Here we are postponing the generation of the target.
                  // If not binding anything we can go directly to the targetMarkAfterBinds point.
                  if isNil vs then
                      match inplabOpt with
                      | None -> CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel)
                      | Some inplab -> CG.SetMark cgbuf inplab targetMarkAfterBinds
                  else
                      cgbuf.SetMarkToHereIfNecessary inplabOpt
                      CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkBeforeBinds.CodeLabel)
                  None
  
          let isTargetPostponed = not generateTargetNow
  
negative.code:         
          let genTargetInfoOpt =
              if generateTargetNow then
                  Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel)
              else
                  None
  