- 
The class determined for a formal access type is the class of all access
types.
Syntax
 
- 
formal_access_type_definition ::= access_type_definition
 Legality Rules
 
- 
For a formal access-to-object type, the designated subtypes of the
formal and actual types shall statically match.
- 
If and only if the general_access_modifier constant applies to the
formal, the actual shall be an access-to-constant type. If the
general_access_modifier all applies to the formal, then the actual shall
be a general access-to-variable type, See section 3.10 Access Types.
- 
For a formal access-to-subprogram subtype, the designated profiles of
the formal and the actual shall be mode-conformant, and the calling
convention of the actual shall be protected if and only if that of the
formal is protected.
Examples
 
- 
Example of formal access types:
- 
--  the formal types of the generic package
 
- 
generic
   type Node is private;
   type Link is access Node;
package P is
   ...
end P;
 
- 
--  can be matched by the actual types
 
- 
type Car;
type Car_Name is access Car;
 
- 
type Car is
   record
      Pred, Succ : Car_Name;
      Number     : License_Number;
      Owner      : Person;
   end record;
- 
--  in the following generic instantiation
 
- 
package R is new P(Node => Car, Link => Car_Name);