On Tue, Feb 21, 2006 at 12:00:08PM +0100, TSa wrote:
: 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?

Um, I always thought that "is reserved" in a spec means "we don't have
the foggiest idea what we'll do with this, but we have a suspicion
that if we let people use this particular thing right now, we'll
regret it someday."

So I'm just saying that the conservative thing for now is to require
people to say MUMBLE::<$foo> and (for now) forbid them from saying MUMBLE<$foo>.

: 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?

s:g/valid\?/currently reserved/, but yes, that's pretty close to the current
state of affairs.  You could remove the ? from Foo[$bar], I think.

Larry

Reply via email to