Если не только встроенные типы, имена которыйх keyword-ы, могут иметь шаблонный параметр, то парсеру придется знать что было уже распаршено, что б решить что за AST тут вставить
kvark: Думаю, в wgsl нет той же проблемы, что в Расте, с парсингом vec4<, ибо набор таких обобщённых типов строго ограничен. Ты всегда знаешь, когда ожидать <
Если набор значений параметра тоже строго ограничен, то вообще вводить параметризацию немного тупо — проще по отдельному типу на каждый вариант, как и предлагали выше.
Так это уже другая конструкция и другое ключевое слово — если там параметризация имеет смысл, то можно оставить. По-моему, они ортогональны и можно решать по ним независимо.