abstract sclass TripleRef {
Triple triple;
*() {}
*(Triple *triple) {}
A get() {
ret tripleAtPosition(triple(), position());
}
Triple triple() { ret triple; }
// 0 = a, 1 = b, 2 = c
abstract int position();
toString {
ret position() + "@" + triple;
}
}