with Ada.Integer_Text_IO;
with Ada.Text_IO;

procedure derived is
    package io renames Ada.Integer_Text_IO;
    package to renames Ada.Text_IO;

    package objects is
        type Integer_1 is range 1 .. 10;
        procedure print(x: Integer_1);

        type Integer_2 is new Integer_1 range 8 .. 10;


    end objects;

    package body objects is

        procedure print(x: Integer_1) is
        begin
            io.Put(Integer(x), Width => 0);
            to.New_Line;
        end print;
    end objects;

    x: objects.Integer_2 := 9;

begin
    objects.print(x);
end derived;