anchor.diff:  
   and GenSetUnionCaseField cenv cgbuf eenv (e,ucref,tyargs,n,e2,m) sequel = 
       GenExpr cenv cgbuf eenv SPSuppress e Continue
  -    let cuspec,idx = GenUnionCaseSpec cenv m eenv.tyenv ucref tyargs
  +    let cuspec,idx = GenUnionCaseSpec cenv.amap m eenv.tyenv ucref tyargs
       let avoidHelpers = entityRefInThisAssembly cenv.g.compilingFslib ucref.TyconRef
       EraseUnions.emitCastData cenv.g.ilg (UnionCodeGen cgbuf) (false,avoidHelpers,cuspec,idx)
       CG.EmitInstrs cgbuf (pop 1) (Push [cuspec.DeclaringType]) [ ] // push/pop to match the line above
  
positive.code: 
                  let nargs = mspec.FormalArgTypes.Length
                  CG.EmitInstr cgbuf (pop (nargs + (if mspec.CallingConv.IsStatic || newobj then 0 else 1)))
                                       (if mustGenerateUnitAfterCall || isSuperInit || isSelfInit then Push0 else (Push [(GenType cenv m eenv.tyenv actualRetTy)])) callInstr
  
                  // For isSuperInit, load the 'this' pointer as the pretend 'result' of the operation.  It will be popped again in most cases 
                  if isSuperInit then CG.EmitInstrs cgbuf (pop 0) (Push [mspec.DeclaringType]) [ mkLdarg0 ] 
  
negative.code:   else  
      GenExpr cenv cgbuf eenv SPSuppress e Continue          
      if not (isObjTy cenv.g srcty) then 
         let ilFromTy = GenType cenv.amap m eenv.tyenv srcty
         CG.EmitInstrs cgbuf (pop 1) (Push [cenv.g.ilg.typ_Object]) [ I_box ilFromTy  ]
      if not (isObjTy cenv.g tgty) then 
          let ilToTy = GenType cenv.amap m eenv.tyenv tgty
          CG.EmitInstrs cgbuf (pop 1) (Push [ilToTy]) [ I_unbox_any ilToTy  ]
      GenSequel cenv eenv.cloc cgbuf sequel
  
  and GenReraise cenv cgbuf eenv (rtnty,m) sequel =     
      let ilReturnTy = GenType cenv.amap m eenv.tyenv rtnty
      CG.EmitInstrs cgbuf (pop 0) Push0 [I_rethrow]
      // [See comment related to I_throw].
      // Rethrow does not return. Required to push dummy value on the stack.
  