package ext1 is
    type I_Smiley is interface;
    procedure Set_Mood (Obj : out I_Smiley) is abstract;
--      
    type Smiley (Max : Positive) is abstract new I_Smiley with record
       S : String (1 .. Max);
    end record; 
--      
    type Regular_Smiley is new Smiley (3) with null record; 
    overriding
    procedure Set_Mood (Obj : out Regular_Smiley);
end ext1;