1package test_image_p is
2    type type1 is tagged private;
3    type type3 is limited private;
4    type type5 is tagged limited private;
5    type a_type5_class is access all type5'Class;
6    task type task_t (arg : access type3) is
7        entry entry1;
8    end task_t;
9    function to_type1 (arg1 : in Integer) return type1;
10private
11  type array_t is array (Positive range <>) of type1;
12  type array_t2 is array (1 .. 3) of Boolean;
13  type type1 is tagged record
14     f2 : array_t2;
15  end record;
16    type type3 is limited record
17        the_task : aliased task_t (type3'Access);
18        the_array : array_t (1 .. 10) := (others => to_type1 (-1));
19    end record;
20    type type5 is tagged limited record
21        f3 : type3;
22    end record;
23end;
24