public List<ExprType> GetTypes(ExprType base_type, IReadOnlyList<Int32> indices) {
List<ExprType> types = new List<ExprType> { base_type };
ExprType from_type = base_type;
foreach (Int32 to_index in indices) {
from_type = GetType(from_type, to_index);
types.Add(from_type);
}
return types;
}