anchor.diff:                          stres, ldres
   
                   let exceptionVar = ilg.DeclareLocal(transType catchVar.Type)
  -                locals.Add(catchVar, exceptionVar)
  -
  -                let _exnBlock = ilg.BeginExceptionBlock()
  +                localsMap.Add(catchVar, exceptionVar)
  +
  +                ilg.BeginExceptionBlock()
   
                   emitExpr expectedState body
                   stres()
  
positive.code:                 ilg.Emit(I_nop)
                  ilg.MarkLabel(endLabel)
  
  #if EMIT_TRY_WITH
              | TryWith(body, _filterVar, _filterBody, catchVar, catchBody) ->
  
                  let stres, ldres =
  
negative.code: 
      type ILLocalBuilder(i: int) =
          member __.LocalIndex = i
      
      [<RequireQualifiedAccess>]
      type ILExceptionClauseBuilder =
          | Finally of ILCodeLabel
          | Fault of ILCodeLabel
          | FilterCatch of ILCodeLabel * (ILCodeLabel * ILCodeLabel)
          | TypeCatch of ILCodeLabel * ILType
  
      type ILExceptionBlockBuilder(i: ILCodeLabel) =
          member __.StartIndex = i
          member val Clause : ILExceptionClauseBuilder option = None with get, set
  
      type ILGenerator(methodName) =
          let mutable locals =  ResizeArray<ILLocal>()
          let mutable instrs =  ResizeArray<ILInstr>()
          let mutable exceptions = ResizeArray<ILExceptionSpec>()
          let mutable labelCount =  0
          let mutable labels =  Dictionary<ILCodeLabel,int>()
          let mutable exceptionBlocks = Stack<ILExceptionBlockBuilder>()
  
          member __.Content = 
              { IsZeroInit = true
                MaxStack = instrs.Count
                Locals = locals.ToArray()
                Code = 
                  { Labels = labels
                    Instrs = instrs.ToArray()
                    Exceptions = exceptions.ToArray()
                    Locals = [| |] (* TODO ILLocalDebugInfo *) }
               }
  
  