The Grace 0.7.0 specification replaces the use of angle brackets for generic type arguments
Foo<o> with double square brackets:
This change only affects the syntax of the language, not the semantics. Generic arguments remain optional, and if not supplied have the
The reasons for this change are to make Grace programs easier to read (for people) and to parse (for programs). Using the old syntax, for example, code such as:
1 run(a < B, C > (1))
could call a one-argument method
run passing the result of a generic call
a<B,C>(1), or it could call the two-argument method
run, with arguments
The new syntax resolves these cases clearly. Compare:
1 run(a[[B, C]](1)) // generic invocation of a
1 run(a < B, C > (1)) // two comparisons.
At the time of this post, no Grace implementation supports this new syntax.