That `ref T` (where T is a type) is not a type is a serious design error, because so `ref T` cannot be used as a template argument. It is a very serious problem. Even in C++ despite of all its silliness, T& is a type and can be used as a template argument. Can the language be changed to resolve this problem?