with Ada.Strings.Unbounded; with Ada.Text_IO; package persons is package su renames Ada.Strings.Unbounded; package to renames Ada.Text_IO; type person is tagged private; function get_name(This: person) return su.Unbounded_String; procedure set_name(This: out person; val: su.Unbounded_String); procedure greet(This: person); private type person is tagged record name: su.Unbounded_String; years: Integer; end record; end persons;