-- { dg-do compile } with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; package Controller is type Iface is interface; type Thing is tagged record Name : Unbounded_String; end record; type Object is abstract new Thing and Iface with private; private type Object is abstract new Thing and Iface with record Surname : Unbounded_String; end record; end Controller;