10.1 The %globals property

The %globals property has the following form

%globals G1, G2, . . ., Gn

where each Gi is one of: the name of a pattern, the name of a data-item, immutable, unique, and n >= 0. In the following G = [G1,G2,…,Gn].

The %globals restriction imposes restrictions on which global data-items and global patterns that can be referred in the-descriptor and its sub-descriptors:

  1. A global data-item X can only be referred if:
    • X is in G.
    • The type of X is a pattern in G.
    • X is a sub-descriptor of a pattern in G.
  2. A global pattern P can only be referred if:
    • P is in G or a sub-descriptor of a pattern in G.
    • P is restricted by %globals Q1, Q2, …, Qm where G is a subset of Q1, Q2, …, Qm. I.e., P must be at least as restricted as the-descriptor.
  3. For any virtual declaration of the form V:< Object, V cannot be instantiated.
  4. For any pattern in Record, the type of any argument must conform to G.
  5. There are no additional restrictions on a given Gi other than what may be defined directly for G.

If a descriptor is restricted by %globals i.e. with no arguments, then no global data-items or global patterns in enclosing objects may be referred, except for descriptors that are also restricted by %globals with no arguments.

Define conform

Hello world