with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; -- Illustrates two things: -- Creation of a new numeric type -- Compiler will not let distinct types be assigned to one another procedure types1 is type Grade is range 0 .. 100; -- Grade is a new type -- type Grade is Integer range 0 .. 100; -- Also works g: Grade; i: Integer := 4; j: Integer := 555; begin g := 3; -- g := i; -- COMPILE ERROR -- i := g; -- COMPILE ERROR i := Integer(g); -- Convert type g := Grade(i); -- Convert type g := Grade(j); -- ??? -- put(g); put(Integer(g)); end types1;