HaloO,
Larry Wall wrote:
> Basically, all types do Package whenever they need an associated
> namespace.
Great! This is how I imagined things to be. And the reason why
the :: sigil is also the separator of namespaces.
> And most of the Package role is simply:
>
> method postfix:<::> () { return %.HOW.packagehash }
>
> or some such, so "$type.::" returns the symbol table hash associated
> with the type, if any. It's mostly just a convention that the Foo
> prototype and the Foo:: package are considered interchangable for
> most purposes.
Do these namespaces also give a structural type definition in the
sense of record subtyping? That is a package is a subtype of another
package if the set of labels is a superset and the types of the slots
available through the common labels are in a subtype relation?
Regards,
--
Thread Previous
|
Thread Next