record
...
end record;
function F return T;
function G(X : T) return Boolean;
Y : Boolean := G(F); --doesn't force T in Ada 83
for T use
record
...
end record;
type T is private;
function F return T;
function G(X : T) return Boolean;
Y : Boolean := G(F); --doesn't force T in Ada 83
private
type T is
record
...
end record;
end P;
type T is private;
package P2 is
type Composite(D : Boolean) is
record
case D is
when False => Cf : Integer;
when True => Ct : T;
end case;
end record;
end P2;
X : Boolean := P2."="( (False,1), (False,1) );
private
type T is array(1..Func_Call) of Integer;
end;
function F return Pool_Ptr;
type A1 is access Boolean;
type A2 is new A1;
type A3 is new A2;
X : A3 := new Boolean; --Don't know what pool yet!
for A1'Storage_Pool use F.all;
end P;
function F return T;
type R is
record
C : T := F;
D : Boolean := F = F;
end record;
X : R;
subtype S is Integer range A'Range;
--not forcing for A
type T is tagged limited private;
generic
type T2 is
new T with private; --Does not freeze T
--in Ada 9X.
package Inner is
...
end Inner;
private
type T is ...;
end Outer;