@Override
 Optional<Expression> visitIjParam(VarRefNode node, InjectedParam ij) {
   return Optional.of(
       variables
           .getIjRecord()
           .invoke(MethodRef.SOY_RECORD_GET_FIELD_PROVIDER, constant(ij.name())));
 }
 @Override
 Optional<Expression> visitLetNodeVar(VarRefNode varRef, LocalVar local) {
   return Optional.of(variables.getLocal(local));
 }
 @Override
 Optional<Expression> visitParam(VarRefNode varRef, TemplateParam param) {
   return Optional.of(variables.getParam(param));
 }