package Expr_Func7 is type Abstract_Food is tagged null record; type Abstract_Food_Access is access Abstract_Food'Class; type Fruit is new Abstract_Food with record Worm : Boolean; end record; type Bananas is tagged record Inside : Abstract_Food_Access; end record; function Has_Worm (B : Bananas) return Boolean is (Fruit (B.Inside.all).Worm); Cool : Bananas; procedure Dummy; end Expr_Func7;