anchor.diff:  
   let sigptrGetZInt32 bytes sigptr = 
       let b0, sigptr = sigptrGetByte bytes sigptr
  -    if b0 <= 0x7Fuy then int b0, sigptr
  +    if b0 <= 0x7Fuy then struct (int b0, sigptr)
       elif b0 <= 0xBFuy then 
           let b0 = b0 &&& 0x7Fuy
           let b1, sigptr = sigptrGetByte bytes sigptr
  -        (int b0 <<< 8) ||| int b1, sigptr
  +        struct ((int b0 <<< 8) ||| int b1, sigptr)
       else 
           let b0 = b0 &&& 0x3Fuy
           let b1, sigptr = sigptrGetByte bytes sigptr
           let b2, sigptr = sigptrGetByte bytes sigptr
           let b3, sigptr = sigptrGetByte bytes sigptr
  -        (int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3, sigptr
  +        struct ((int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3, sigptr)
            
   let rec sigptrFoldAcc f n (bytes: byte[]) (sigptr: int) i acc = 
       if i < n then 
  
positive.code:         mkILArr1DTy ty, sigptr
      elif b0 = et_ARRAY then
          let ty, sigptr = sigptrGetTy ctxt numtypars bytes sigptr
          let rank, sigptr = sigptrGetZInt32 bytes sigptr
          let numSized, sigptr = sigptrGetZInt32 bytes sigptr
          let sizes, sigptr = sigptrFold sigptrGetZInt32 numSized bytes sigptr
          let numLoBounded, sigptr = sigptrGetZInt32 bytes sigptr
          let lobounds, sigptr = sigptrFold sigptrGetZInt32 numLoBounded bytes sigptr
          let shape = 
              let dim i =
                (if i < numLoBounded then Some (List.item i lobounds) else None), 
  
negative.code:     elif b0 = et_WITH then 
          let b0, sigptr = sigptrGetByte bytes sigptr
          let tdorIdx, sigptr = sigptrGetTypeDefOrRefOrSpecIdx bytes sigptr
          let struct (n, sigptr) = sigptrGetZInt32 bytes sigptr
          let argtys, sigptr = sigptrFold (sigptrGetTy ctxt numtypars) n bytes sigptr
          seekReadTypeDefOrRef ctxt numtypars (if b0 = et_CLASS then AsObject else AsValue) argtys tdorIdx, 
          sigptr
  