with Ada.Finalization;
package Controlled_Record is
   type Point_T is limited private;
   procedure Assert_Invariants (PA : Point_T);
private
   type Coords_T is array (1 .. 2) of Natural;
   type Point_T is new Ada.Finalization.Controlled with record
      Pos : Coords_T := (0, 0);
   end record;
end Controlled_Record;