public class ArrOps<T> {
/*@ extract @*/
public void forEach(T[] a, AProc<T> p) {
//@ maintaining 0 <= i && i <= a.length;
//@ decreasing a.length - i;
for (int i = 0; i < a.length; i++) {
p.run(a, i);
}
}
}