@Override
public Input<?> visitReference(Reference symbol, Context context) {
Input<?> result;
if (!symbol.info().granularity().finerThan(rowGranularity)) {
ReferenceImplementation impl = referenceResolver.getImplementation(symbol.info().ident());
if (impl != null && impl instanceof Input<?>) {
// collect collectExpressions separately
if (impl instanceof CollectExpression<?>) {
context.collectExpressions.add((CollectExpression<?>) impl);
}