Switch `<>` back to `[]`

Here we go.

Thoughts?
What ambiguities? You haven't described any.

The only ambiguity I know of is the one requiring the use of `foo::<int>()`, and the change to `[]` does not resolve that. As @chris-morgan already said, your code example here needs to still be `foo::[int]()` to be unambiguous.