     with Text_IO;

     ----------------------------------------------------------------------
     -- Universal Integer
     ----------------------------------------------------------------------
     generic
       type Num is range <>;
     package IOInAK is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     subtype Field is Text_IO.Field;
     subtype Number_Base is Text_IO.Number_Base;
     subtype File_Mode is Text_IO.File_Mode;
     In_File  : constant File_Mode := Text_IO.In_File;
     Out_File : constant File_Mode := Text_IO.Out_File;
     subtype File_Type is Text_IO.File_Type;
     package Num_IO is new Text_IO.Integer_IO ( Num );
     Default_Width : Field := Num'width;
     Default_Base  : Number_Base := 10;
     ----------------------------------------------------------------------
     procedure Ask (
       Item    :    out Num;
       Prompt  : in     string    := "";
       Default : in     Num       := Num'first;
       Minimum : in     Num       := Num'first;
       Maximum : in     Num       := Num'last;
       Width   : in     Field     := Default_Width );
     procedure Get (
       Item  :    out  Num;
       Width : in      Field      := Default_Width )
       renames Num_IO.Get;
     procedure Put (
       File  : in     File_Type;
       Item  : in     Num;
       Width : in     Field       := Default_Width;
       Base  : in     Number_Base := Default_Base )
       renames Num_IO.Put;
     procedure Put (
       Item  : in     Num;
       Width : in     Field       := Default_Width;
       Base  : in     Number_Base := Default_Base )
       renames Num_IO.Put;
     procedure Put_Line (
       File  : in     File_Type;
       Item  : in     Num;
       Width : in     Field       := Default_Width;
       Base  : in     Number_Base := Default_Base );
     procedure Put_Line (
       Item  : in     Num;
       Width : in     Field       := Default_Width;
       Base  : in     Number_Base := Default_Base );
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end IOInAK;


