HaloO,
S02 states "(Directly subscripting the type with either square brackets
or curlies is reserved for various generic type-theoretic operations. In
most other matters type names and package names are interchangeable.)"
What are these type-theoretic operations? And what do directly
attached < > pointy brackets on a type mean? How are they related
to « »? Is there something like ::_ as 'topic' type?
Here are the details of all four bracketing ops:
Foo($bar) # function call? constructor?
Foo .($bar) # same
Foo::($bar) # symbolic symbol lookup with outward scanning
Foo .::($bar) # same
Foo::<$bar> # direct symbol lookup without outward scanning
Foo::{'$bar'} # same
Foo .::<$bar> # same
Foo{$bar} # type constraint check?
Foo<$bar> # valid?
Foo«$bar» # valid?
Foo[$bar] # parametric type instanciation?
Foo::[$bar] # valid?
Foo .::[$bar] # same?
--