static L<Int> byteArrayToIntList_littleEndian(byte[] a) {
  if (a == null) null;
  int n = (a.length+3)/4;
  
  ret new RandomAccessAbstractList<Int>() {
    public int size() { ret n; }
    
    public Int get(int i) {
      ret intFromBytes_littleEndian_partial(a, i*4);
    }
    
    public Int set(int i, Int val) {
      Int old = get(i);
      if ((int) old != (int) val)
        intToBytes_inArray_littleEndian_partial(val, a, i*4);
      ret old;
    }
  };
}