anchor.diff:            let nibs = min 8 (width - (i*8)) in
             d.[i] <- 0ul;
             for j=0 to nibs-1 do
  -            d.[i] <- d.[i] ||| (UInt32.of_int ((int_of_hex str.[idx ((i*8)+j)]) <<< (4*j)));
  +            d.[i] <- d.[i] ||| (uint32 ((int_of_hex str.[idx ((i*8)+j)]) <<< (4*j)));
             done;
           done
         );
  
positive.code:         | B_eq -> if !a = !b then 1 else 0
          | B_lt -> if !a < !b then 1 else 0
          | B_cat -> !b ||| (!a <<< wb)); 
      sel = (fun r a hi lo -> r :=  UInt32.to_int ((UInt32.of_int !a) >>> lo)); 
      eq = (fun a b w -> !a = !b);
      to_hex_str = (fun d bits -> 
          let b4 = (bits + 3) / 4 in
          let rec build v b =
            if b4 = b then ""
            else (build (UInt32.to_int ((UInt32.of_int v) >>> 4)) (b+1)) ^ (hex_of_int (v &&& 15)) in
          build !d 0
        );
      of_hex_str = (fun d str w -> 
  
negative.code:         let b4 = (bits + 3) / 4 in
          let rec build b =
            if b4 = b then ""
            else (build (b+1)) ^ (hex_of_int (int ((d.[b/8] >>> (4*(b%8))) &&& 15ul))) in
          build 0
        );
      of_hex_str = (fun d str w -> 
  