| package elab1 is | |
| -- the forward declaration is the trigger | |
| type Stream; | |
| type Stream_Ptr is access Stream; | |
| type Stream is array (Positive range <>) of Character; | |
| function Get_Size (S : Stream_Ptr) return Natural; | |
| type Rec (Size : Natural) is | |
| record | |
| B : Boolean; | |
| end record; | |
| My_Desc : constant Stream_Ptr := new Stream'(1 => ' '); | |
| My_Size : constant Natural := Get_Size (My_Desc); | |
| subtype My_Rec is Rec (My_Size); | |
| end; |