class Data<region R> {
int x in R;
}
class DataPair {
region First, Second;
final Data<First> first;
final Data<Second> second;
// Constructor initialization effects don't have to be reported
// See Reference Manual s. 2.3.2
DataPair(Data<First> first, Data<Second> second)
pure
{
this.first = first;
this.second = second;
}
void updateBoth(int firstX, int secondX) {
cobegin {
// Effect is 'writes First'
first.x = firstX;
// Effect is 'writes Second'
second.x = secondX;
}
}
}