package Overload is type Rec1 is record Data : Integer; end record; type Ptr1 is access all Rec1; type Rec2 is record Data : aliased Rec1; end record; type Ptr2 is access Rec2; function Get (I : Integer) return Ptr1; function Get (I : Integer) return Ptr2; function F (I : Integer) return Ptr1; end Overload;