private EmitValHLSL EmitValImpl(MidStructVal val, Span span)
 {
     var recordType = (IAggTypeHLSL)EmitType(val.Type);
     var fieldVals = (from f in val.FieldVals
                      select EmitExp(f, span)).ToArray();
     return new TupleValHLSL(
         recordType,
         fieldVals);
 }
 private void TransformChildrenImpl(
     MidStructVal structVal )
 {
     structVal.FieldVals = (from f in structVal.FieldVals
                             select Transform( f )).ToArray();
 }