Test<Test<int> > f() { Test<Test<int> > result; return result; } is correctly parsed, but removing either of the spaces between the '>' characters cause a parsing failure. There is code in the parser that tries to deal with the '>>' at the end of a list of template arguments or parameters, but it does not seem to work.
We removed generics.
Migrated to https://github.com/gpuweb/WHLSL/issues/120