anchor.diff:  open System
   open System.Collections.Concurrent
   open System.Collections.Generic
  +open System.Collections.Immutable
   open System.Diagnostics
   open System.IO
   open System.IO.MemoryMappedFiles
  
positive.code:     addr <- addr+2
      res
  
  let seekReadTaggedIdx f nbits big mdv (addr: byref<int>) =  
      let tok = if big then seekReadInt32Adv mdv &addr else seekReadUInt16AsInt32Adv mdv &addr 
      tokToTaggedIdx f nbits tok
  
  
  let seekReadIdx big mdv (addr: byref<int>) =  
      if big then seekReadInt32Adv mdv &addr else seekReadUInt16AsInt32Adv mdv &addr
  
  let seekReadUntaggedIdx (tab: TableName) (ctxt: ILMetadataReader) mdv (addr: byref<int>) =  
      seekReadIdx ctxt.tableBigness.[tab.Index] mdv &addr
  
  
  let seekReadResolutionScopeIdx (ctxt: ILMetadataReader) mdv (addr: byref<int>) = seekReadTaggedIdx mkResolutionScopeTag 2 ctxt.rsBigness mdv &addr
  let seekReadTypeDefOrRefOrSpecIdx (ctxt: ILMetadataReader) mdv (addr: byref<int>) = seekReadTaggedIdx mkTypeDefOrRefOrSpecTag 2 ctxt.tdorBigness mdv &addr   
  
negative.code:     TaggedIndex(tag, tok)
  
  let (|TaggedIndex|) (x: TaggedIndex<'T>) = x.tag, x.index    
  let inline tokToTaggedIdx f nbits tok = 
      let tagmask = 
          if nbits = 1 then 1 
          elif nbits = 2 then 3 
  