1. package body Basic_Io is 
  2.  
  3.    procedure Put (Item : Ada.Strings.Unbounded.Unbounded_String) is 
  4.    begin 
  5.       Put (Ada.Strings.Unbounded.To_String (Item)); 
  6.    end Put; 
  7.  
  8.    procedure Put_Line (Item : Ada.Strings.Unbounded.Unbounded_String) is 
  9.    begin 
  10.       Put (Item); 
  11.       New_Line; 
  12.    end Put_Line; 
  13.  
  14.    procedure Put_Line (Item : in Integer; Width : in Field := Default_Width; Base : in Number_Base := Default_Base) is 
  15.    begin 
  16.       Put (Item => Item, Width => Width, Base => Base); 
  17.       New_Line; 
  18.    end Put_Line; 
  19.  
  20.    procedure Put_Line 
  21.      (Item : in Float; 
  22.       Fore : in Field := Default_Fore; 
  23.       Aft  : in Field := Default_Aft; 
  24.       Exp  : in Field := Default_Exp) 
  25.    is 
  26.    begin 
  27.       Put (Item => Item, Fore => Fore, Aft => Aft, Exp => Exp); 
  28.       New_Line; 
  29.    end Put_Line; 
  30.  
  31.    procedure Put (Item : Boolean) is 
  32.    begin 
  33.       Put (Boolean'Image (Item)); 
  34.    end Put; 
  35.  
  36.    procedure Put_Line (Item : Boolean) is 
  37.    begin 
  38.       Put (Item); 
  39.       New_Line; 
  40.    end Put_Line; 
  41.  
  42.    function "&" (Left : String; Right : Boolean) return String is 
  43.    begin 
  44.       return Left & Boolean'Image (Right); 
  45.    end "&"; 
  46.  
  47.    function "&" (Left : Boolean; Right : String) return String is 
  48.    begin 
  49.       return Boolean'Image (Left) & Right; 
  50.    end "&"; 
  51.  
  52.    function "&" (Left : String; Right : Integer) return String is 
  53.    begin 
  54.       return Left & Integer'Image (Right); 
  55.    end "&"; 
  56.  
  57.    function "&" (Left : String; Right : Float) return String is 
  58.    begin 
  59.       return Left & Float'Image (Right); 
  60.    end "&"; 
  61.  
  62.    function "&" (Left : Integer; Right : String) return String is 
  63.    begin 
  64.       return Integer'Image (Left) & Right; 
  65.    end "&"; 
  66.  
  67.    function "&" (Left : Float; Right : String) return String is 
  68.    begin 
  69.       return Float'Image (Left) & Right; 
  70.    end "&"; 
  71.  
  72. end Basic_Io;