Inheritance: EmitTypeHLSL
 public SimpleValHLSL(
     string name,
     RealTypeHLSL type)
     : base(type)
 {
     _name = name;
 }
 public ArrayTypeBaseHLSL(
     RealTypeHLSL elementType,
     EmitValHLSL elementCount)
 {
     _elementType = elementType;
     _elementCount = elementCount;
 }
 public PseudoArrayElemTypeHLSL(
     RealTypeHLSL elementType,
     EmitValHLSL elementCount)
     : base(elementType, elementCount)
 {
 }
 public LitHLSL(
     RealTypeHLSL type,
     string val)
     : base(val, type)
 {
 }
 private ITypeHLSL MakePseudoArrayElemTypeImpl(
     RealTypeHLSL type,
     EmitValHLSL count)
 {
     return new PseudoArrayElemTypeHLSL(type, count);
 }
 private EmitValHLSL GetFieldImpl(
     SimpleValHLSL objVal,
     RealTypeHLSL fieldType,
     string fieldName,
     int fieldIndex,
     Span span)
 {
     return new SimpleValHLSL(
         string.Format("({0}).{1}", objVal, fieldName),
         fieldType);
 }
 public ArrayTypeHLSL(
     RealTypeHLSL elementType,
     EmitValHLSL elementCount)
     : base(elementType, elementCount)
 {
 }