public ReportQuery(Element root, final SubQueryLoader sl) throws ReportException {
version = new ReportVersion(root);
rowCount = new RowCount(root);
final Set<Atom> atoms = new HashSet<Atom>();
AtomRegistrar ar = new AtomRegistrar() {
@Override
final public void registerAtom(Atom atom) {
assert !atoms.contains(atom) : " Atom value doubled: " + atom;
atoms.add(atom);
}