diff --git a/Ada95/gen/terminal_interface-curses.ads.m4 b/Ada95/gen/terminal_interface-curses.ads.m4
index 4abc55e..25bb5d9 100644
--- a/Ada95/gen/terminal_interface-curses.ads.m4
+++ b/Ada95/gen/terminal_interface-curses.ads.m4
@@ -9,7 +9,7 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              --
+-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc.              --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -37,23 +37,28 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.41 $
---  $Date: 2007/05/05 20:33:52 $
+--  $Revision: 1.47 $
+--  $Date: 2014/05/24 21:31:57 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
-include(`Base_Defs')
 with System.Storage_Elements;
 with Interfaces.C;   --  We need this for some assertions.
 
+with Terminal_Interface.Curses_Constants;
+
 package Terminal_Interface.Curses is
    pragma Preelaborate (Terminal_Interface.Curses);
-include(`Linker_Options')
-include(`Version_Info')
+   pragma Linker_Options ("-lncurses" & Curses_Constants.DFT_ARG_SUFFIX);
+
+   Major_Version : constant := Curses_Constants.NCURSES_VERSION_MAJOR;
+   Minor_Version : constant := Curses_Constants.NCURSES_VERSION_MINOR;
+   NC_Version : String renames Curses_Constants.Version;
+
    type Window is private;
    Null_Window : constant Window;
 
-   type Line_Position   is new Natural; --  line coordinate
-   type Column_Position is new Natural; --  column coordinate
+   type Line_Position   is new Integer; --  line coordinate
+   type Column_Position is new Integer; --  column coordinate
 
    subtype Line_Count   is Line_Position   range 1 .. Line_Position'Last;
    --  Type to count lines. We do not allow null windows, so must be positive
@@ -65,24 +70,315 @@
    --  request codes.
 
    --  FIXME: The "-1" should be Curses_Err
-   subtype Real_Key_Code is Key_Code range -1 .. M4_KEY_MAX;
+   subtype Real_Key_Code is Key_Code range -1 .. Curses_Constants.KEY_MAX;
    --  This are the codes that potentially represent a real keystroke.
    --  Not all codes may be possible on a specific terminal. To check the
    --  availability of a special key, the Has_Key function is provided.
 
    subtype Special_Key_Code is Real_Key_Code
-     range M4_SPECIAL_FIRST .. Real_Key_Code'Last;
+     range Curses_Constants. KEY_MIN - 1 .. Real_Key_Code'Last;
    --  Type for a function- or special key number
 
    subtype Normal_Key_Code is Real_Key_Code range
      Character'Pos (Character'First) .. Character'Pos (Character'Last);
    --  This are the codes for regular (incl. non-graphical) characters.
 
+   --  For those who like to use the original key names we produce them were
+   --  they differ from the original.
+
    --  Constants for function- and special keys
-   --
-   Key_None                       : constant Special_Key_Code := M4_SPECIAL_FIRST;
-include(`Key_Definitions')
-   Key_Max                        : constant Special_Key_Code
+   Key_None                    : constant Special_Key_Code
+     := Curses_Constants.KEY_MIN - 1;
+   Key_Min                     : constant Special_Key_Code
+     := Curses_Constants.KEY_MIN;
+   Key_Break                   : constant Special_Key_Code
+     := Curses_Constants.KEY_BREAK;
+   KEY_DOWN                    : constant Special_Key_Code
+     := Curses_Constants.KEY_DOWN;
+   Key_Cursor_Down             : Special_Key_Code renames KEY_DOWN;
+   KEY_UP                      : constant Special_Key_Code
+     := Curses_Constants.KEY_UP;
+   Key_Cursor_Up               : Special_Key_Code renames KEY_UP;
+   KEY_LEFT                    : constant Special_Key_Code
+     := Curses_Constants.KEY_LEFT;
+   Key_Cursor_Left             : Special_Key_Code renames KEY_LEFT;
+   KEY_RIGHT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_RIGHT;
+   Key_Cursor_Right            : Special_Key_Code renames KEY_RIGHT;
+   Key_Home                    : constant Special_Key_Code
+     := Curses_Constants.KEY_HOME;
+   Key_Backspace               : constant Special_Key_Code
+     := Curses_Constants.KEY_BACKSPACE;
+   Key_F0                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F0;
+   Key_F1                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F1;
+   Key_F2                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F2;
+   Key_F3                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F3;
+   Key_F4                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F4;
+   Key_F5                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F5;
+   Key_F6                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F6;
+   Key_F7                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F7;
+   Key_F8                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F8;
+   Key_F9                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F9;
+   Key_F10                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F10;
+   Key_F11                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F11;
+   Key_F12                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F12;
+   Key_F13                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F13;
+   Key_F14                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F14;
+   Key_F15                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F15;
+   Key_F16                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F16;
+   Key_F17                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F17;
+   Key_F18                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F18;
+   Key_F19                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F19;
+   Key_F20                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F20;
+   Key_F21                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F21;
+   Key_F22                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F22;
+   Key_F23                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F23;
+   Key_F24                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F24;
+   KEY_DL                      : constant Special_Key_Code
+     := Curses_Constants.KEY_DL;
+   Key_Delete_Line             : Special_Key_Code renames KEY_DL;
+   KEY_IL                      : constant Special_Key_Code
+     := Curses_Constants.KEY_IL;
+   Key_Insert_Line             : Special_Key_Code renames KEY_IL;
+   KEY_DC                      : constant Special_Key_Code
+     := Curses_Constants.KEY_DC;
+   Key_Delete_Char             : Special_Key_Code renames KEY_DC;
+   KEY_IC                      : constant Special_Key_Code
+     := Curses_Constants.KEY_IC;
+   Key_Insert_Char             : Special_Key_Code renames KEY_IC;
+   KEY_EIC                     : constant Special_Key_Code
+     := Curses_Constants.KEY_EIC;
+   Key_Exit_Insert_Mode        : Special_Key_Code renames KEY_EIC;
+   KEY_CLEAR                   : constant Special_Key_Code
+     := Curses_Constants.KEY_CLEAR;
+   Key_Clear_Screen            : Special_Key_Code renames KEY_CLEAR;
+   KEY_EOS                     : constant Special_Key_Code
+     := Curses_Constants.KEY_EOS;
+   Key_Clear_End_Of_Screen     : Special_Key_Code renames KEY_EOS;
+   KEY_EOL                     : constant Special_Key_Code
+     := Curses_Constants.KEY_EOL;
+   Key_Clear_End_Of_Line       : Special_Key_Code renames KEY_EOL;
+   KEY_SF                      : constant Special_Key_Code
+     := Curses_Constants.KEY_SF;
+   Key_Scroll_1_Forward        : Special_Key_Code renames KEY_SF;
+   KEY_SR                      : constant Special_Key_Code
+     := Curses_Constants.KEY_SR;
+   Key_Scroll_1_Backward       : Special_Key_Code renames KEY_SR;
+   KEY_NPAGE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_NPAGE;
+   Key_Next_Page               : Special_Key_Code renames KEY_NPAGE;
+   KEY_PPAGE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_PPAGE;
+   Key_Previous_Page           : Special_Key_Code renames KEY_PPAGE;
+   KEY_STAB                    : constant Special_Key_Code
+     := Curses_Constants.KEY_STAB;
+   Key_Set_Tab                 : Special_Key_Code renames KEY_STAB;
+   KEY_CTAB                    : constant Special_Key_Code
+     := Curses_Constants.KEY_CTAB;
+   Key_Clear_Tab               : Special_Key_Code renames KEY_CTAB;
+   KEY_CATAB                   : constant Special_Key_Code
+     := Curses_Constants.KEY_CATAB;
+   Key_Clear_All_Tabs          : Special_Key_Code renames KEY_CATAB;
+   KEY_ENTER                   : constant Special_Key_Code
+     := Curses_Constants.KEY_ENTER;
+   Key_Enter_Or_Send           : Special_Key_Code renames KEY_ENTER;
+   KEY_SRESET                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SRESET;
+   Key_Soft_Reset              : Special_Key_Code renames KEY_SRESET;
+   Key_Reset                   : constant Special_Key_Code
+     := Curses_Constants.KEY_RESET;
+   Key_Print                   : constant Special_Key_Code
+     := Curses_Constants.KEY_PRINT;
+   KEY_LL                      : constant Special_Key_Code
+     := Curses_Constants.KEY_LL;
+   Key_Bottom                  : Special_Key_Code renames KEY_LL;
+   KEY_A1                      : constant Special_Key_Code
+     := Curses_Constants.KEY_A1;
+   Key_Upper_Left_Of_Keypad    : Special_Key_Code renames KEY_A1;
+   KEY_A3                      : constant Special_Key_Code
+     := Curses_Constants.KEY_A3;
+   Key_Upper_Right_Of_Keypad   : Special_Key_Code renames KEY_A3;
+   KEY_B2                      : constant Special_Key_Code
+     := Curses_Constants.KEY_B2;
+   Key_Center_Of_Keypad        : Special_Key_Code renames KEY_B2;
+   KEY_C1                      : constant Special_Key_Code
+     := Curses_Constants.KEY_C1;
+   Key_Lower_Left_Of_Keypad    : Special_Key_Code renames KEY_C1;
+   KEY_C3                      : constant Special_Key_Code
+     := Curses_Constants.KEY_C3;
+   Key_Lower_Right_Of_Keypad   : Special_Key_Code renames KEY_C3;
+   KEY_BTAB                    : constant Special_Key_Code
+     := Curses_Constants.KEY_BTAB;
+   Key_Back_Tab                : Special_Key_Code renames KEY_BTAB;
+   KEY_BEG                     : constant Special_Key_Code
+     := Curses_Constants.KEY_BEG;
+   Key_Beginning               : Special_Key_Code renames KEY_BEG;
+   Key_Cancel                  : constant Special_Key_Code
+     := Curses_Constants.KEY_CANCEL;
+   Key_Close                   : constant Special_Key_Code
+     := Curses_Constants.KEY_CLOSE;
+   Key_Command                 : constant Special_Key_Code
+     := Curses_Constants.KEY_COMMAND;
+   Key_Copy                    : constant Special_Key_Code
+     := Curses_Constants.KEY_COPY;
+   Key_Create                  : constant Special_Key_Code
+     := Curses_Constants.KEY_CREATE;
+   Key_End                     : constant Special_Key_Code
+     := Curses_Constants.KEY_END;
+   Key_Exit                    : constant Special_Key_Code
+     := Curses_Constants.KEY_EXIT;
+   Key_Find                    : constant Special_Key_Code
+     := Curses_Constants.KEY_FIND;
+   Key_Help                    : constant Special_Key_Code
+     := Curses_Constants.KEY_HELP;
+   Key_Mark                    : constant Special_Key_Code
+     := Curses_Constants.KEY_MARK;
+   Key_Message                 : constant Special_Key_Code
+     := Curses_Constants.KEY_MESSAGE;
+   Key_Move                    : constant Special_Key_Code
+     := Curses_Constants.KEY_MOVE;
+   Key_Next                    : constant Special_Key_Code
+     := Curses_Constants.KEY_NEXT;
+   Key_Open                    : constant Special_Key_Code
+     := Curses_Constants.KEY_OPEN;
+   Key_Options                 : constant Special_Key_Code
+     := Curses_Constants.KEY_OPTIONS;
+   Key_Previous                : constant Special_Key_Code
+     := Curses_Constants.KEY_PREVIOUS;
+   Key_Redo                    : constant Special_Key_Code
+     := Curses_Constants.KEY_REDO;
+   Key_Reference               : constant Special_Key_Code
+     := Curses_Constants.KEY_REFERENCE;
+   Key_Refresh                 : constant Special_Key_Code
+     := Curses_Constants.KEY_REFRESH;
+   Key_Replace                 : constant Special_Key_Code
+     := Curses_Constants.KEY_REPLACE;
+   Key_Restart                 : constant Special_Key_Code
+     := Curses_Constants.KEY_RESTART;
+   Key_Resume                  : constant Special_Key_Code
+     := Curses_Constants.KEY_RESUME;
+   Key_Save                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SAVE;
+   KEY_SBEG                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SBEG;
+   Key_Shift_Begin             : Special_Key_Code renames KEY_SBEG;
+   KEY_SCANCEL                 : constant Special_Key_Code
+     := Curses_Constants.KEY_SCANCEL;
+   Key_Shift_Cancel            : Special_Key_Code renames KEY_SCANCEL;
+   KEY_SCOMMAND                : constant Special_Key_Code
+     := Curses_Constants.KEY_SCOMMAND;
+   Key_Shift_Command           : Special_Key_Code renames KEY_SCOMMAND;
+   KEY_SCOPY                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SCOPY;
+   Key_Shift_Copy              : Special_Key_Code renames KEY_SCOPY;
+   KEY_SCREATE                 : constant Special_Key_Code
+     := Curses_Constants.KEY_SCREATE;
+   Key_Shift_Create            : Special_Key_Code renames KEY_SCREATE;
+   KEY_SDC                     : constant Special_Key_Code
+     := Curses_Constants.KEY_SDC;
+   Key_Shift_Delete_Char       : Special_Key_Code renames KEY_SDC;
+   KEY_SDL                     : constant Special_Key_Code
+     := Curses_Constants.KEY_SDL;
+   Key_Shift_Delete_Line       : Special_Key_Code renames KEY_SDL;
+   Key_Select                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SELECT;
+   KEY_SEND                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SEND;
+   Key_Shift_End               : Special_Key_Code renames KEY_SEND;
+   KEY_SEOL                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SEOL;
+   Key_Shift_Clear_End_Of_Line : Special_Key_Code renames KEY_SEOL;
+   KEY_SEXIT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SEXIT;
+   Key_Shift_Exit              : Special_Key_Code renames KEY_SEXIT;
+   KEY_SFIND                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SFIND;
+   Key_Shift_Find              : Special_Key_Code renames KEY_SFIND;
+   KEY_SHELP                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SHELP;
+   Key_Shift_Help              : Special_Key_Code renames KEY_SHELP;
+   KEY_SHOME                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SHOME;
+   Key_Shift_Home              : Special_Key_Code renames KEY_SHOME;
+   KEY_SIC                     : constant Special_Key_Code
+     := Curses_Constants.KEY_SIC;
+   Key_Shift_Insert_Char       : Special_Key_Code renames KEY_SIC;
+   KEY_SLEFT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SLEFT;
+   Key_Shift_Cursor_Left       : Special_Key_Code renames KEY_SLEFT;
+   KEY_SMESSAGE                : constant Special_Key_Code
+     := Curses_Constants.KEY_SMESSAGE;
+   Key_Shift_Message           : Special_Key_Code renames KEY_SMESSAGE;
+   KEY_SMOVE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SMOVE;
+   Key_Shift_Move              : Special_Key_Code renames KEY_SMOVE;
+   KEY_SNEXT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SNEXT;
+   Key_Shift_Next_Page         : Special_Key_Code renames KEY_SNEXT;
+   KEY_SOPTIONS                : constant Special_Key_Code
+     := Curses_Constants.KEY_SOPTIONS;
+   Key_Shift_Options           : Special_Key_Code renames KEY_SOPTIONS;
+   KEY_SPREVIOUS               : constant Special_Key_Code
+     := Curses_Constants.KEY_SPREVIOUS;
+   Key_Shift_Previous_Page     : Special_Key_Code renames KEY_SPREVIOUS;
+   KEY_SPRINT                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SPRINT;
+   Key_Shift_Print             : Special_Key_Code renames KEY_SPRINT;
+   KEY_SREDO                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SREDO;
+   Key_Shift_Redo              : Special_Key_Code renames KEY_SREDO;
+   KEY_SREPLACE                : constant Special_Key_Code
+     := Curses_Constants.KEY_SREPLACE;
+   Key_Shift_Replace           : Special_Key_Code renames KEY_SREPLACE;
+   KEY_SRIGHT                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SRIGHT;
+   Key_Shift_Cursor_Right      : Special_Key_Code renames KEY_SRIGHT;
+   KEY_SRSUME                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SRSUME;
+   Key_Shift_Resume            : Special_Key_Code renames KEY_SRSUME;
+   KEY_SSAVE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SSAVE;
+   Key_Shift_Save              : Special_Key_Code renames KEY_SSAVE;
+   KEY_SSUSPEND                : constant Special_Key_Code
+     := Curses_Constants.KEY_SSUSPEND;
+   Key_Shift_Suspend           : Special_Key_Code renames KEY_SSUSPEND;
+   KEY_SUNDO                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SUNDO;
+   Key_Shift_Undo              : Special_Key_Code renames KEY_SUNDO;
+   Key_Suspend                 : constant Special_Key_Code
+     := Curses_Constants.KEY_SUSPEND;
+   Key_Undo                    : constant Special_Key_Code
+     := Curses_Constants.KEY_UNDO;
+   Key_Mouse                   : constant Special_Key_Code
+     := Curses_Constants.KEY_MOUSE;
+   Key_Resize                  : constant Special_Key_Code
+     := Curses_Constants.KEY_RESIZE;
+   Key_Max                     : constant Special_Key_Code
      := Special_Key_Code'Last;
 
    subtype User_Key_Code is Key_Code
@@ -90,12 +386,7 @@
    --  This is reserved for user defined key codes. The range between Key_Max
    --  and the first user code is reserved for subsystems like menu and forms.
 
-   --  For those who like to use the original key names we produce them were
-   --  they differ from the original. Please note that they may differ in
-   --  lower/upper case.
-include(`Old_Keys')dnl
-
-------------------------------------------------------------------------------
+   --------------------------------------------------------------------------
 
    type Color_Number is range -1 .. Integer (Interfaces.C.short'Last);
    for Color_Number'Size use Interfaces.C.short'Size;
@@ -104,7 +395,15 @@
    --  (potentially) definable colors. Some of those indices are
    --  predefined (see below), although they may not really exist.
 
-include(`Color_Defs')
+   Black   : constant Color_Number := Curses_Constants.COLOR_BLACK;
+   Red     : constant Color_Number := Curses_Constants.COLOR_RED;
+   Green   : constant Color_Number := Curses_Constants.COLOR_GREEN;
+   Yellow  : constant Color_Number := Curses_Constants.COLOR_YELLOW;
+   Blue    : constant Color_Number := Curses_Constants.COLOR_BLUE;
+   Magenta : constant Color_Number := Curses_Constants.COLOR_MAGENTA;
+   Cyan    : constant Color_Number := Curses_Constants.COLOR_CYAN;
+   White   : constant Color_Number := Curses_Constants.COLOR_WHITE;
+
    type RGB_Value is range 0 .. Integer (Interfaces.C.short'Last);
    for RGB_Value'Size use Interfaces.C.short'Size;
    --  Some system may allow to redefine a color by setting RGB values.
@@ -117,8 +416,73 @@
    --  two colors described by Color_Numbers, one for the foreground and
    --  the other for the background
 
-include(`Character_Attribute_Set_Rep')
-   --  (n)curses uses all but the lowest 16 Bits for Attributes.
+   type Character_Attribute_Set is
+      record
+         Stand_Out               : Boolean;
+         Under_Line              : Boolean;
+         Reverse_Video           : Boolean;
+         Blink                   : Boolean;
+         Dim_Character           : Boolean;
+         Bold_Character          : Boolean;
+         Protected_Character     : Boolean;
+         Invisible_Character     : Boolean;
+         Alternate_Character_Set : Boolean;
+         Horizontal              : Boolean;
+         Left                    : Boolean;
+         Low                     : Boolean;
+         Right                   : Boolean;
+         Top                     : Boolean;
+         Vertical                : Boolean;
+      end record;
+
+   for Character_Attribute_Set use
+      record
+         Stand_Out at 0 range
+           Curses_Constants.A_STANDOUT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_STANDOUT_Last - Curses_Constants.Attr_First;
+         Under_Line at 0 range
+           Curses_Constants.A_UNDERLINE_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_UNDERLINE_Last - Curses_Constants.Attr_First;
+         Reverse_Video at 0 range
+           Curses_Constants.A_REVERSE_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_REVERSE_Last - Curses_Constants.Attr_First;
+         Blink at 0 range
+           Curses_Constants.A_BLINK_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_BLINK_Last - Curses_Constants.Attr_First;
+         Dim_Character at 0 range
+           Curses_Constants.A_DIM_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_DIM_Last - Curses_Constants.Attr_First;
+         Bold_Character at 0 range
+           Curses_Constants.A_BOLD_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_BOLD_Last - Curses_Constants.Attr_First;
+         Protected_Character at 0 range
+           Curses_Constants.A_PROTECT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_PROTECT_Last - Curses_Constants.Attr_First;
+         Invisible_Character at 0 range
+           Curses_Constants.A_INVIS_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_INVIS_Last - Curses_Constants.Attr_First;
+         Alternate_Character_Set at 0 range
+           Curses_Constants.A_ALTCHARSET_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_ALTCHARSET_Last - Curses_Constants.Attr_First;
+         Horizontal at 0 range
+           Curses_Constants.A_HORIZONTAL_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_HORIZONTAL_Last - Curses_Constants.Attr_First;
+         Left at 0 range
+           Curses_Constants.A_LEFT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_LEFT_Last - Curses_Constants.Attr_First;
+         Low at 0 range
+           Curses_Constants.A_LOW_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_LOW_Last - Curses_Constants.Attr_First;
+         Right at 0 range
+           Curses_Constants.A_RIGHT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_RIGHT_Last - Curses_Constants.Attr_First;
+         Top at 0 range
+           Curses_Constants.A_TOP_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_TOP_Last - Curses_Constants.Attr_First;
+         Vertical at 0 range
+           Curses_Constants.A_VERTICAL_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_VERTICAL_Last - Curses_Constants.Attr_First;
+      end record;
 
    Normal_Video : constant Character_Attribute_Set := (others => False);
 
@@ -128,17 +492,29 @@
          Color : Color_Pair;
          Ch    : Character;
       end record;
-   pragma Convention (C, Attributed_Character);
+   pragma Convention (C_Pass_By_Copy, Attributed_Character);
    --  This is the counterpart for the chtype in C.
 
-include(`AC_Rep')
+   for Attributed_Character use
+      record
+         Ch    at 0 range Curses_Constants.A_CHARTEXT_First
+           .. Curses_Constants.A_CHARTEXT_Last;
+         Color at 0 range Curses_Constants.A_COLOR_First
+           .. Curses_Constants.A_COLOR_Last;
+         pragma Warnings (Off);
+         Attr  at 0 range Curses_Constants.Attr_First
+           .. Curses_Constants.Attr_Last;
+         pragma Warnings (On);
+      end record;
+   for Attributed_Character'Size use Curses_Constants.chtype_Size;
+
    Default_Character : constant Attributed_Character
      := (Ch    => Character'First,
          Color => Color_Pair'First,
          Attr  => (others => False));  --  preelaboratable Normal_Video
 
    type Attributed_String is array (Positive range <>) of Attributed_Character;
-   pragma Pack (Attributed_String);
+   pragma Convention (C, Attributed_String);
    --  In this binding we allow strings of attributed characters.
 
    ------------------
@@ -188,7 +564,78 @@
    function Number_Of_Color_Pairs return Natural;
    pragma Inline (Number_Of_Color_Pairs);
 
-include(`ACS_Map')dnl
+   subtype ACS_Index is Character range
+     Character'Val (0) .. Character'Val (127);
+   function ACS_Map (Index : ACS_Index) return Attributed_Character;
+   pragma Import (C, ACS_Map, "acs_map_as_function");
+
+   --  Constants for several characters from the Alternate Character Set
+   --  You must use these constants as indices into the ACS_Map function
+   --  to get the corresponding attributed character at runtime
+   ACS_Upper_Left_Corner  : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_ULCORNER);
+   ACS_Lower_Left_Corner  : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LLCORNER);
+   ACS_Upper_Right_Corner : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_URCORNER);
+   ACS_Lower_Right_Corner : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LRCORNER);
+   ACS_Left_Tee           : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LTEE);
+   ACS_Right_Tee          : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_RTEE);
+   ACS_Bottom_Tee         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BTEE);
+   ACS_Top_Tee            : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_TTEE);
+   ACS_Horizontal_Line    : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_HLINE);
+   ACS_Vertical_Line      : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_VLINE);
+   ACS_Plus_Symbol        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_PLUS);
+   ACS_Scan_Line_1        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S1);
+   ACS_Scan_Line_9        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S9);
+   ACS_Diamond            : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_DIAMOND);
+   ACS_Checker_Board      : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_CKBOARD);
+   ACS_Degree             : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_DEGREE);
+   ACS_Plus_Minus         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_PLMINUS);
+   ACS_Bullet             : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BULLET);
+   ACS_Left_Arrow         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LARROW);
+   ACS_Right_Arrow        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_RARROW);
+   ACS_Down_Arrow         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_DARROW);
+   ACS_Up_Arrow           : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_UARROW);
+   ACS_Board_Of_Squares   : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BOARD);
+   ACS_Lantern            : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LANTERN);
+   ACS_Solid_Block        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BLOCK);
+   ACS_Scan_Line_3        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S3);
+   ACS_Scan_Line_7        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S7);
+   ACS_Less_Or_Equal      : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LEQUAL);
+   ACS_Greater_Or_Equal   : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_GEQUAL);
+   ACS_PI                 : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_PI);
+   ACS_Not_Equal          : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_NEQUAL);
+   ACS_Sterling           : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_STERLING);
 
    --  MANPAGE(`curs_initscr.3x')
    --  | Not implemented: newterm, set_term, delscreen
@@ -196,11 +643,13 @@
    --  ANCHOR(`stdscr',`Standard_Window')
    function Standard_Window return Window;
    --  AKA
+   pragma Import (C, Standard_Window, "stdscr_as_function");
    pragma Inline (Standard_Window);
 
    --  ANCHOR(`curscr',`Current_Window')
    function Current_Window return Window;
    --  AKA
+   pragma Import (C, Current_Window, "curscr_as_function");
    pragma Inline (Current_Window);
 
    --  ANCHOR(`initscr()',`Init_Screen')
@@ -227,9 +676,9 @@
    --  MANPAGE(`curs_move.3x')
 
    --  ANCHOR(`wmove()',`Move_Cursor')
-   procedure Move_Cursor (Win    : in Window := Standard_Window;
-                          Line   : in Line_Position;
-                          Column : in Column_Position);
+   procedure Move_Cursor (Win    : Window := Standard_Window;
+                          Line   : Line_Position;
+                          Column : Column_Position);
    --  AKA
    --  ALIAS(`move()')
    pragma Inline (Move_Cursor);
@@ -237,43 +686,43 @@
    --  MANPAGE(`curs_addch.3x')
 
    --  ANCHOR(`waddch()',`Add')
-   procedure Add (Win :  in Window := Standard_Window;
-                  Ch  :  in Attributed_Character);
+   procedure Add (Win : Window := Standard_Window;
+                  Ch  : Attributed_Character);
    --  AKA
    --  ALIAS(`addch()')
 
-   procedure Add (Win :  in Window := Standard_Window;
-                  Ch  :  in Character);
+   procedure Add (Win : Window := Standard_Window;
+                  Ch  : Character);
    --  Add a single character at the current logical cursor position to
    --  the window. Use the current windows attributes.
 
    --  ANCHOR(`mvwaddch()',`Add')
    procedure Add
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Ch     : in Attributed_Character);
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Ch     : Attributed_Character);
    --  AKA
    --  ALIAS(`mvaddch()')
 
    procedure Add
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Ch     : in Character);
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Ch     : Character);
    --  Move to the position and add a single character into the window
    --  There are more Add routines, so the Inline pragma follows later
 
    --  ANCHOR(`wechochar()',`Add_With_Immediate_Echo')
    procedure Add_With_Immediate_Echo
-     (Win : in Window := Standard_Window;
-      Ch  : in Attributed_Character);
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character);
    --  AKA
    --  ALIAS(`echochar()')
 
    procedure Add_With_Immediate_Echo
-     (Win : in Window := Standard_Window;
-      Ch  : in Character);
+     (Win : Window := Standard_Window;
+      Ch  : Character);
    --  Add a character and do an immediate refresh of the screen.
    pragma Inline (Add_With_Immediate_Echo);
 
@@ -331,52 +780,52 @@
    pragma Inline (Duplicate);
 
    --  ANCHOR(`mvwin()',`Move_Window')
-   procedure Move_Window (Win    : in Window;
-                          Line   : in Line_Position;
-                          Column : in Column_Position);
+   procedure Move_Window (Win    : Window;
+                          Line   : Line_Position;
+                          Column : Column_Position);
    --  AKA
    pragma Inline (Move_Window);
 
    --  ANCHOR(`mvderwin()',`Move_Derived_Window')
-   procedure Move_Derived_Window (Win    : in Window;
-                                  Line   : in Line_Position;
-                                  Column : in Column_Position);
+   procedure Move_Derived_Window (Win    : Window;
+                                  Line   : Line_Position;
+                                  Column : Column_Position);
    --  AKA
    pragma Inline (Move_Derived_Window);
 
    --  ANCHOR(`wsyncup()',`Synchronize_Upwards')
-   procedure Synchronize_Upwards (Win : in Window);
+   procedure Synchronize_Upwards (Win : Window);
    --  AKA
    pragma Import (C, Synchronize_Upwards, "wsyncup");
 
    --  ANCHOR(`wsyncdown()',`Synchronize_Downwards')
-   procedure Synchronize_Downwards (Win : in Window);
+   procedure Synchronize_Downwards (Win : Window);
    --  AKA
    pragma Import (C, Synchronize_Downwards, "wsyncdown");
 
    --  ANCHOR(`syncok()',`Set_Synch_Mode')
-   procedure Set_Synch_Mode (Win  : in Window := Standard_Window;
-                             Mode : in Boolean := False);
+   procedure Set_Synch_Mode (Win  : Window := Standard_Window;
+                             Mode : Boolean := False);
    --  AKA
    pragma Inline (Set_Synch_Mode);
 
    --  MANPAGE(`curs_addstr.3x')
 
    --  ANCHOR(`waddnstr()',`Add')
-   procedure Add (Win : in Window := Standard_Window;
-                  Str : in String;
-                  Len : in Integer := -1);
+   procedure Add (Win : Window := Standard_Window;
+                  Str : String;
+                  Len : Integer := -1);
    --  AKA
    --  ALIAS(`waddstr()')
    --  ALIAS(`addnstr()')
    --  ALIAS(`addstr()')
 
    --  ANCHOR(`mvwaddnstr()',`Add')
-   procedure Add (Win    : in Window := Standard_Window;
-                  Line   : in Line_Position;
-                  Column : in Column_Position;
-                  Str    : in String;
-                  Len    : in Integer := -1);
+   procedure Add (Win    : Window := Standard_Window;
+                  Line   : Line_Position;
+                  Column : Column_Position;
+                  Str    : String;
+                  Len    : Integer := -1);
    --  AKA
    --  ALIAS(`mvwaddstr()')
    --  ALIAS(`mvaddnstr()')
@@ -385,20 +834,20 @@
    --  MANPAGE(`curs_addchstr.3x')
 
    --  ANCHOR(`waddchnstr()',`Add')
-   procedure Add (Win : in Window := Standard_Window;
-                  Str : in Attributed_String;
-                  Len : in Integer := -1);
+   procedure Add (Win : Window := Standard_Window;
+                  Str : Attributed_String;
+                  Len : Integer := -1);
    --  AKA
    --  ALIAS(`waddchstr()')
    --  ALIAS(`addchnstr()')
    --  ALIAS(`addchstr()')
 
    --  ANCHOR(`mvwaddchnstr()',`Add')
-   procedure Add (Win    : in Window := Standard_Window;
-                  Line   : in Line_Position;
-                  Column : in Column_Position;
-                  Str    : in Attributed_String;
-                  Len    : in Integer := -1);
+   procedure Add (Win    : Window := Standard_Window;
+                  Line   : Line_Position;
+                  Column : Column_Position;
+                  Str    : Attributed_String;
+                  Len    : Integer := -1);
    --  AKA
    --  ALIAS(`mvwaddchstr()')
    --  ALIAS(`mvaddchnstr()')
@@ -411,15 +860,15 @@
 
    --  ANCHOR(`wborder()',`Border')
    procedure Border
-     (Win                       : in Window := Standard_Window;
-      Left_Side_Symbol          : in Attributed_Character := Default_Character;
-      Right_Side_Symbol         : in Attributed_Character := Default_Character;
-      Top_Side_Symbol           : in Attributed_Character := Default_Character;
-      Bottom_Side_Symbol        : in Attributed_Character := Default_Character;
-      Upper_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
-      Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
-      Lower_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
-      Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character
+     (Win                       : Window := Standard_Window;
+      Left_Side_Symbol          : Attributed_Character := Default_Character;
+      Right_Side_Symbol         : Attributed_Character := Default_Character;
+      Top_Side_Symbol           : Attributed_Character := Default_Character;
+      Bottom_Side_Symbol        : Attributed_Character := Default_Character;
+      Upper_Left_Corner_Symbol  : Attributed_Character := Default_Character;
+      Upper_Right_Corner_Symbol : Attributed_Character := Default_Character;
+      Lower_Left_Corner_Symbol  : Attributed_Character := Default_Character;
+      Lower_Right_Corner_Symbol : Attributed_Character := Default_Character
      );
    --  AKA
    --  ALIAS(`border()')
@@ -427,26 +876,26 @@
 
    --  ANCHOR(`box()',`Box')
    procedure Box
-     (Win               : in Window := Standard_Window;
-      Vertical_Symbol   : in Attributed_Character := Default_Character;
-      Horizontal_Symbol : in Attributed_Character := Default_Character);
+     (Win               : Window := Standard_Window;
+      Vertical_Symbol   : Attributed_Character := Default_Character;
+      Horizontal_Symbol : Attributed_Character := Default_Character);
    --  AKA
    pragma Inline (Box);
 
    --  ANCHOR(`whline()',`Horizontal_Line')
    procedure Horizontal_Line
-     (Win         : in Window := Standard_Window;
-      Line_Size   : in Natural;
-      Line_Symbol : in Attributed_Character := Default_Character);
+     (Win         : Window := Standard_Window;
+      Line_Size   : Natural;
+      Line_Symbol : Attributed_Character := Default_Character);
    --  AKA
    --  ALIAS(`hline()')
    pragma Inline (Horizontal_Line);
 
    --  ANCHOR(`wvline()',`Vertical_Line')
    procedure Vertical_Line
-     (Win         : in Window := Standard_Window;
-      Line_Size   : in Natural;
-      Line_Symbol : in Attributed_Character := Default_Character);
+     (Win         : Window := Standard_Window;
+      Line_Size   : Natural;
+      Line_Symbol : Attributed_Character := Default_Character);
    --  AKA
    --  ALIAS(`vline()')
    pragma Inline (Vertical_Line);
@@ -461,12 +910,12 @@
    --  ALIAS(`getch()')
    --  Get a character from the keyboard and echo it - if enabled - to the
    --  window.
-   --  If for any reason (i.e. a timeout) we couldn't get a character the
+   --  If for any reason (i.e. a timeout) we could not get a character the
    --  returned keycode is Key_None.
    pragma Inline (Get_Keystroke);
 
    --  ANCHOR(`ungetch()',`Undo_Keystroke')
-   procedure Undo_Keystroke (Key : in Real_Key_Code);
+   procedure Undo_Keystroke (Key : Real_Key_Code);
    --  AKA
    pragma Inline (Undo_Keystroke);
 
@@ -509,9 +958,9 @@
 
    --  ANCHOR(`wattron()',`Switch_Character_Attribute')
    procedure Switch_Character_Attribute
-     (Win  : in Window := Standard_Window;
-      Attr : in Character_Attribute_Set := Normal_Video;
-      On   : in Boolean := True); --  if False we switch Off.
+     (Win  : Window := Standard_Window;
+      Attr : Character_Attribute_Set := Normal_Video;
+      On   : Boolean := True); --  if False we switch Off.
    --  Switches those Attributes set to true in the list.
    --  AKA
    --  ALIAS(`wattroff()')
@@ -520,49 +969,49 @@
 
    --  ANCHOR(`wattrset()',`Set_Character_Attributes')
    procedure Set_Character_Attributes
-     (Win   : in Window := Standard_Window;
-      Attr  : in Character_Attribute_Set := Normal_Video;
-      Color : in Color_Pair := Color_Pair'First);
+     (Win   : Window := Standard_Window;
+      Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
    --  AKA
    --  ALIAS(`attrset()')
    pragma Inline (Set_Character_Attributes);
 
    --  ANCHOR(`wattr_get()',`Get_Character_Attributes')
    function Get_Character_Attribute
-     (Win : in Window := Standard_Window) return Character_Attribute_Set;
+     (Win : Window := Standard_Window) return Character_Attribute_Set;
    --  AKA
    --  ALIAS(`attr_get()')
 
    --  ANCHOR(`wattr_get()',`Get_Character_Attribute')
    function Get_Character_Attribute
-     (Win : in Window := Standard_Window) return Color_Pair;
+     (Win : Window := Standard_Window) return Color_Pair;
    --  AKA
    pragma Inline (Get_Character_Attribute);
 
    --  ANCHOR(`wcolor_set()',`Set_Color')
-   procedure Set_Color (Win  : in Window := Standard_Window;
-                        Pair : in Color_Pair);
+   procedure Set_Color (Win  : Window := Standard_Window;
+                        Pair : Color_Pair);
    --  AKA
    --  ALIAS(`color_set()')
    pragma Inline (Set_Color);
 
    --  ANCHOR(`wchgat()',`Change_Attributes')
    procedure Change_Attributes
-     (Win   : in Window := Standard_Window;
-      Count : in Integer := -1;
-      Attr  : in Character_Attribute_Set := Normal_Video;
-      Color : in Color_Pair := Color_Pair'First);
+     (Win   : Window := Standard_Window;
+      Count : Integer := -1;
+      Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
    --  AKA
    --  ALIAS(`chgat()')
 
    --  ANCHOR(`mvwchgat()',`Change_Attributes')
    procedure Change_Attributes
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position := Line_Position'First;
-      Column : in Column_Position := Column_Position'First;
-      Count  : in Integer := -1;
-      Attr   : in Character_Attribute_Set := Normal_Video;
-      Color  : in Color_Pair := Color_Pair'First);
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position := Line_Position'First;
+      Column : Column_Position := Column_Position'First;
+      Count  : Integer := -1;
+      Attr   : Character_Attribute_Set := Normal_Video;
+      Color  : Color_Pair := Color_Pair'First);
    --  AKA
    --  ALIAS(`mvchgat()')
    pragma Inline (Change_Attributes);
@@ -584,36 +1033,36 @@
    --  | Not implemented : typeahead
    --
    --  ANCHOR(`cbreak()',`Set_Cbreak_Mode')
-   procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True);
+   procedure Set_Cbreak_Mode (SwitchOn : Boolean := True);
    --  AKA
    --  ALIAS(`nocbreak()')
    pragma Inline (Set_Cbreak_Mode);
 
    --  ANCHOR(`raw()',`Set_Raw_Mode')
-   procedure Set_Raw_Mode (SwitchOn : in Boolean := True);
+   procedure Set_Raw_Mode (SwitchOn : Boolean := True);
    --  AKA
    --  ALIAS(`noraw()')
    pragma Inline (Set_Raw_Mode);
 
    --  ANCHOR(`echo()',`Set_Echo_Mode')
-   procedure Set_Echo_Mode (SwitchOn : in Boolean := True);
+   procedure Set_Echo_Mode (SwitchOn : Boolean := True);
    --  AKA
    --  ALIAS(`noecho()')
    pragma Inline (Set_Echo_Mode);
 
    --  ANCHOR(`meta()',`Set_Meta_Mode')
-   procedure Set_Meta_Mode (Win      : in Window := Standard_Window;
-                            SwitchOn : in Boolean := True);
+   procedure Set_Meta_Mode (Win      : Window := Standard_Window;
+                            SwitchOn : Boolean := True);
    --  AKA
    pragma Inline (Set_Meta_Mode);
 
    --  ANCHOR(`keypad()',`Set_KeyPad_Mode')
-   procedure Set_KeyPad_Mode (Win      : in Window := Standard_Window;
-                              SwitchOn : in Boolean := True);
+   procedure Set_KeyPad_Mode (Win      : Window := Standard_Window;
+                              SwitchOn : Boolean := True);
    --  AKA
    pragma Inline (Set_KeyPad_Mode);
 
-   function Get_KeyPad_Mode (Win : in Window := Standard_Window)
+   function Get_KeyPad_Mode (Win : Window := Standard_Window)
                              return Boolean;
    --  This has no pendant in C. There you've to look into the WINDOWS
    --  structure to get the value. Bad practice, not repeated in Ada.
@@ -621,100 +1070,100 @@
    type Half_Delay_Amount is range 1 .. 255;
 
    --  ANCHOR(`halfdelay()',`Half_Delay')
-   procedure Half_Delay (Amount : in Half_Delay_Amount);
+   procedure Half_Delay (Amount : Half_Delay_Amount);
    --  AKA
    pragma Inline (Half_Delay);
 
    --  ANCHOR(`intrflush()',`Set_Flush_On_Interrupt_Mode')
    procedure Set_Flush_On_Interrupt_Mode
-     (Win  : in Window := Standard_Window;
-      Mode : in Boolean := True);
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := True);
    --  AKA
    pragma Inline (Set_Flush_On_Interrupt_Mode);
 
    --  ANCHOR(`qiflush()',`Set_Queue_Interrupt_Mode')
    procedure Set_Queue_Interrupt_Mode
-     (Win   : in Window := Standard_Window;
-      Flush : in Boolean := True);
+     (Win   : Window := Standard_Window;
+      Flush : Boolean := True);
    --  AKA
    --  ALIAS(`noqiflush()')
    pragma Inline (Set_Queue_Interrupt_Mode);
 
    --  ANCHOR(`nodelay()',`Set_NoDelay_Mode')
    procedure Set_NoDelay_Mode
-     (Win  : in Window := Standard_Window;
-      Mode : in Boolean := False);
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False);
    --  AKA
    pragma Inline (Set_NoDelay_Mode);
 
    type Timeout_Mode is (Blocking, Non_Blocking, Delayed);
 
    --  ANCHOR(`wtimeout()',`Set_Timeout_Mode')
-   procedure Set_Timeout_Mode (Win    : in Window := Standard_Window;
-                               Mode   : in Timeout_Mode;
-                               Amount : in Natural); --  in Milliseconds
+   procedure Set_Timeout_Mode (Win    : Window := Standard_Window;
+                               Mode   : Timeout_Mode;
+                               Amount : Natural); --  in Milliseconds
    --  AKA
    --  ALIAS(`timeout()')
    --  Instead of overloading the semantic of the sign of amount, we
    --  introduce the Timeout_Mode parameter. This should improve
    --  readability. For Blocking and Non_Blocking, the Amount is not
    --  evaluated.
-   --  We don't inline this procedure.
+   --  We do not inline this procedure.
 
    --  ANCHOR(`notimeout()',`Set_Escape_Time_Mode')
    procedure Set_Escape_Timer_Mode
-     (Win       : in Window := Standard_Window;
-      Timer_Off : in Boolean := False);
+     (Win       : Window := Standard_Window;
+      Timer_Off : Boolean := False);
    --  AKA
    pragma Inline (Set_Escape_Timer_Mode);
 
    --  MANPAGE(`curs_outopts.3x')
 
    --  ANCHOR(`nl()',`Set_NL_Mode')
-   procedure Set_NL_Mode (SwitchOn : in Boolean := True);
+   procedure Set_NL_Mode (SwitchOn : Boolean := True);
    --  AKA
    --  ALIAS(`nonl()')
    pragma Inline (Set_NL_Mode);
 
    --  ANCHOR(`clearok()',`Clear_On_Next_Update')
    procedure Clear_On_Next_Update
-     (Win      : in Window := Standard_Window;
-      Do_Clear : in Boolean := True);
+     (Win      : Window := Standard_Window;
+      Do_Clear : Boolean := True);
    --  AKA
    pragma Inline (Clear_On_Next_Update);
 
    --  ANCHOR(`idlok()',`Use_Insert_Delete_Line')
    procedure Use_Insert_Delete_Line
-     (Win    : in Window := Standard_Window;
-      Do_Idl : in Boolean := True);
+     (Win    : Window := Standard_Window;
+      Do_Idl : Boolean := True);
    --  AKA
    pragma Inline (Use_Insert_Delete_Line);
 
    --  ANCHOR(`idcok()',`Use_Insert_Delete_Character')
    procedure Use_Insert_Delete_Character
-     (Win    : in Window := Standard_Window;
-      Do_Idc : in Boolean := True);
+     (Win    : Window := Standard_Window;
+      Do_Idc : Boolean := True);
    --  AKA
    pragma Inline (Use_Insert_Delete_Character);
 
    --  ANCHOR(`leaveok()',`Leave_Cursor_After_Update')
    procedure Leave_Cursor_After_Update
-     (Win      : in Window := Standard_Window;
-      Do_Leave : in Boolean := True);
+     (Win      : Window := Standard_Window;
+      Do_Leave : Boolean := True);
    --  AKA
    pragma Inline (Leave_Cursor_After_Update);
 
    --  ANCHOR(`immedok()',`Immediate_Update_Mode')
    procedure Immediate_Update_Mode
-     (Win  : in Window := Standard_Window;
-      Mode : in Boolean := False);
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False);
    --  AKA
    pragma Inline (Immediate_Update_Mode);
 
    --  ANCHOR(`scrollok()',`Allow_Scrolling')
    procedure Allow_Scrolling
-     (Win  : in Window := Standard_Window;
-      Mode : in Boolean := False);
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False);
    --  AKA
    pragma Inline (Allow_Scrolling);
 
@@ -724,9 +1173,9 @@
 
    --  ANCHOR(`wsetscrreg()',`Set_Scroll_Region')
    procedure Set_Scroll_Region
-     (Win         : in Window := Standard_Window;
-      Top_Line    : in Line_Position;
-      Bottom_Line : in Line_Position);
+     (Win         : Window := Standard_Window;
+      Top_Line    : Line_Position;
+      Bottom_Line : Line_Position);
    --  AKA
    --  ALIAS(`setscrreg()')
    pragma Inline (Set_Scroll_Region);
@@ -739,7 +1188,7 @@
    pragma Inline (Update_Screen);
 
    --  ANCHOR(`wrefresh()',`Refresh')
-   procedure Refresh (Win : in Window := Standard_Window);
+   procedure Refresh (Win : Window := Standard_Window);
    --  AKA
    --  There is an overloaded Refresh for Pads.
    --  The Inline pragma appears there
@@ -747,47 +1196,47 @@
 
    --  ANCHOR(`wnoutrefresh()',`Refresh_Without_Update')
    procedure Refresh_Without_Update
-     (Win : in Window := Standard_Window);
+     (Win : Window := Standard_Window);
    --  AKA
    --  There is an overloaded Refresh_Without_Update for Pads.
    --  The Inline pragma appears there
 
    --  ANCHOR(`redrawwin()',`Redraw')
-   procedure Redraw (Win : in Window := Standard_Window);
+   procedure Redraw (Win : Window := Standard_Window);
    --  AKA
 
    --  ANCHOR(`wredrawln()',`Redraw')
-   procedure Redraw (Win        : in Window := Standard_Window;
-                     Begin_Line : in Line_Position;
-                     Line_Count : in Positive);
+   procedure Redraw (Win        : Window := Standard_Window;
+                     Begin_Line : Line_Position;
+                     Line_Count : Positive);
    --  AKA
    pragma Inline (Redraw);
 
    --  MANPAGE(`curs_clear.3x')
 
    --  ANCHOR(`werase()',`Erase')
-   procedure Erase (Win : in Window := Standard_Window);
+   procedure Erase (Win : Window := Standard_Window);
    --  AKA
    --  ALIAS(`erase()')
    pragma Inline (Erase);
 
    --  ANCHOR(`wclear()',`Clear')
    procedure Clear
-     (Win : in Window := Standard_Window);
+     (Win : Window := Standard_Window);
    --  AKA
    --  ALIAS(`clear()')
    pragma Inline (Clear);
 
    --  ANCHOR(`wclrtobot()',`Clear_To_End_Of_Screen')
    procedure Clear_To_End_Of_Screen
-     (Win : in Window := Standard_Window);
+     (Win : Window := Standard_Window);
    --  AKA
    --  ALIAS(`clrtobot()')
    pragma Inline (Clear_To_End_Of_Screen);
 
    --  ANCHOR(`wclrtoeol()',`Clear_To_End_Of_Line')
    procedure Clear_To_End_Of_Line
-     (Win : in Window := Standard_Window);
+     (Win : Window := Standard_Window);
    --  AKA
    --  ALIAS(`clrtoeol()')
    pragma Inline (Clear_To_End_Of_Line);
@@ -799,16 +1248,16 @@
    --  because in C it is common to see bkgdset(A_BOLD) or
    --  bkgdset(COLOR_PAIR(n))
    procedure Set_Background
-     (Win : in Window := Standard_Window;
-      Ch  : in Attributed_Character);
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character);
    --  AKA
    --  ALIAS(`bkgdset()')
    pragma Inline (Set_Background);
 
    --  ANCHOR(`wbkgd()',`Change_Background')
    procedure Change_Background
-     (Win : in Window := Standard_Window;
-      Ch  : in Attributed_Character);
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character);
    --  AKA
    --  ALIAS(`bkgd()')
    pragma Inline (Change_Background);
@@ -824,26 +1273,26 @@
    --  MANPAGE(`curs_touch.3x')
 
    --  ANCHOR(`untouchwin()',`Untouch')
-   procedure Untouch (Win : in Window := Standard_Window);
+   procedure Untouch (Win : Window := Standard_Window);
    --  AKA
    pragma Inline (Untouch);
 
    --  ANCHOR(`touchwin()',`Touch')
-   procedure Touch (Win : in Window := Standard_Window);
+   procedure Touch (Win : Window := Standard_Window);
    --  AKA
 
    --  ANCHOR(`touchline()',`Touch')
-   procedure Touch (Win   : in Window := Standard_Window;
-                    Start : in Line_Position;
-                    Count : in Positive);
+   procedure Touch (Win   : Window := Standard_Window;
+                    Start : Line_Position;
+                    Count : Positive);
    --  AKA
    pragma Inline (Touch);
 
    --  ANCHOR(`wtouchln()',`Change_Line_Status')
-   procedure Change_Lines_Status (Win   : in Window := Standard_Window;
-                                  Start : in Line_Position;
-                                  Count : in Positive;
-                                  State : in Boolean);
+   procedure Change_Lines_Status (Win   : Window := Standard_Window;
+                                  Start : Line_Position;
+                                  Count : Positive;
+                                  State : Boolean);
    --  AKA
    pragma Inline (Change_Lines_Status);
 
@@ -861,27 +1310,27 @@
 
    --  ANCHOR(`copywin()',`Copy')
    procedure Copy
-     (Source_Window            : in Window;
-      Destination_Window       : in Window;
-      Source_Top_Row           : in Line_Position;
-      Source_Left_Column       : in Column_Position;
-      Destination_Top_Row      : in Line_Position;
-      Destination_Left_Column  : in Column_Position;
-      Destination_Bottom_Row   : in Line_Position;
-      Destination_Right_Column : in Column_Position;
-      Non_Destructive_Mode     : in Boolean := True);
+     (Source_Window            : Window;
+      Destination_Window       : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position;
+      Non_Destructive_Mode     : Boolean := True);
    --  AKA
    pragma Inline (Copy);
 
    --  ANCHOR(`overwrite()',`Overwrite')
-   procedure Overwrite (Source_Window      : in Window;
-                        Destination_Window : in Window);
+   procedure Overwrite (Source_Window      : Window;
+                        Destination_Window : Window);
    --  AKA
    pragma Inline (Overwrite);
 
    --  ANCHOR(`overlay()',`Overlay')
-   procedure Overlay (Source_Window      : in Window;
-                      Destination_Window : in Window);
+   procedure Overlay (Source_Window      : Window;
+                      Destination_Window : Window);
    --  AKA
    pragma Inline (Overlay);
 
@@ -889,20 +1338,20 @@
 
    --  ANCHOR(`winsdelln()',`Insert_Delete_Lines')
    procedure Insert_Delete_Lines
-     (Win   : in Window  := Standard_Window;
-      Lines : in Integer := 1); --  default is to insert one line above
+     (Win   : Window  := Standard_Window;
+      Lines : Integer := 1); --  default is to insert one line above
    --  AKA
    --  ALIAS(`insdelln()')
    pragma Inline (Insert_Delete_Lines);
 
    --  ANCHOR(`wdeleteln()',`Delete_Line')
-   procedure Delete_Line (Win : in Window := Standard_Window);
+   procedure Delete_Line (Win : Window := Standard_Window);
    --  AKA
    --  ALIAS(`deleteln()')
    pragma Inline (Delete_Line);
 
    --  ANCHOR(`winsertln()',`Insert_Line')
-   procedure Insert_Line (Win : in Window := Standard_Window);
+   procedure Insert_Line (Win : Window := Standard_Window);
    --  AKA
    --  ALIAS(`insertln()')
    pragma Inline (Insert_Line);
@@ -911,7 +1360,7 @@
 
    --  ANCHOR(`getmaxyx()',`Get_Size')
    procedure Get_Size
-     (Win               : in Window := Standard_Window;
+     (Win               : Window := Standard_Window;
       Number_Of_Lines   : out Line_Count;
       Number_Of_Columns : out Column_Count);
    --  AKA
@@ -919,7 +1368,7 @@
 
    --  ANCHOR(`getbegyx()',`Get_Window_Position')
    procedure Get_Window_Position
-     (Win             : in Window := Standard_Window;
+     (Win             : Window := Standard_Window;
       Top_Left_Line   : out Line_Position;
       Top_Left_Column : out Column_Position);
    --  AKA
@@ -927,7 +1376,7 @@
 
    --  ANCHOR(`getyx()',`Get_Cursor_Position')
    procedure Get_Cursor_Position
-     (Win    : in  Window := Standard_Window;
+     (Win    : Window := Standard_Window;
       Line   : out Line_Position;
       Column : out Column_Position);
    --  AKA
@@ -935,12 +1384,12 @@
 
    --  ANCHOR(`getparyx()',`Get_Origin_Relative_To_Parent')
    procedure Get_Origin_Relative_To_Parent
-     (Win                : in  Window;
+     (Win                : Window;
       Top_Left_Line      : out Line_Position;
       Top_Left_Column    : out Column_Position;
       Is_Not_A_Subwindow : out Boolean);
    --  AKA
-   --  Instead of placing -1 in the coordinates as return, we use a boolean
+   --  Instead of placing -1 in the coordinates as return, we use a Boolean
    --  to return the info that the window has no parent.
    pragma Inline (Get_Origin_Relative_To_Parent);
 
@@ -964,44 +1413,44 @@
 
    --  ANCHOR(`prefresh()',`Refresh')
    procedure Refresh
-     (Pad                      : in Window;
-      Source_Top_Row           : in Line_Position;
-      Source_Left_Column       : in Column_Position;
-      Destination_Top_Row      : in Line_Position;
-      Destination_Left_Column  : in Column_Position;
-      Destination_Bottom_Row   : in Line_Position;
-      Destination_Right_Column : in Column_Position);
+     (Pad                      : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position);
    --  AKA
    pragma Inline (Refresh);
 
    --  ANCHOR(`pnoutrefresh()',`Refresh_Without_Update')
    procedure Refresh_Without_Update
-     (Pad                      : in Window;
-      Source_Top_Row           : in Line_Position;
-      Source_Left_Column       : in Column_Position;
-      Destination_Top_Row      : in Line_Position;
-      Destination_Left_Column  : in Column_Position;
-      Destination_Bottom_Row   : in Line_Position;
-      Destination_Right_Column : in Column_Position);
+     (Pad                      : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position);
    --  AKA
    pragma Inline (Refresh_Without_Update);
 
    --  ANCHOR(`pechochar()',`Add_Character_To_Pad_And_Echo_It')
    procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : in Window;
-      Ch  : in Attributed_Character);
+     (Pad : Window;
+      Ch  : Attributed_Character);
    --  AKA
 
    procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : in Window;
-      Ch  : in Character);
+     (Pad : Window;
+      Ch  : Character);
    pragma Inline (Add_Character_To_Pad_And_Echo_It);
 
    --  MANPAGE(`curs_scroll.3x')
 
    --  ANCHOR(`wscrl()',`Scroll')
-   procedure Scroll (Win    : in Window  := Standard_Window;
-                     Amount : in Integer := 1);
+   procedure Scroll (Win    : Window  := Standard_Window;
+                     Amount : Integer := 1);
    --  AKA
    --  ALIAS(`scroll()')
    --  ALIAS(`scrl()')
@@ -1010,15 +1459,15 @@
    --  MANPAGE(`curs_delch.3x')
 
    --  ANCHOR(`wdelch()',`Delete_Character')
-   procedure Delete_Character (Win : in Window := Standard_Window);
+   procedure Delete_Character (Win : Window := Standard_Window);
    --  AKA
    --  ALIAS(`delch()')
 
    --  ANCHOR(`mvwdelch()',`Delete_Character')
    procedure Delete_Character
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position);
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position);
    --  AKA
    --  ALIAS(`mvdelch()')
    pragma Inline (Delete_Character);
@@ -1043,36 +1492,36 @@
    --  MANPAGE(`curs_insch.3x')
 
    --  ANCHOR(`winsch()',`Insert')
-   procedure Insert (Win : in Window := Standard_Window;
-                     Ch  : in Attributed_Character);
+   procedure Insert (Win : Window := Standard_Window;
+                     Ch  : Attributed_Character);
    --  AKA
    --  ALIAS(`insch()')
 
    --  ANCHOR(`mvwinsch()',`Insert')
-   procedure Insert (Win    : in Window := Standard_Window;
-                     Line   : in Line_Position;
-                     Column : in Column_Position;
-                     Ch     : in Attributed_Character);
+   procedure Insert (Win    : Window := Standard_Window;
+                     Line   : Line_Position;
+                     Column : Column_Position;
+                     Ch     : Attributed_Character);
    --  AKA
    --  ALIAS(`mvinsch()')
 
    --  MANPAGE(`curs_insstr.3x')
 
    --  ANCHOR(`winsnstr()',`Insert')
-   procedure Insert (Win : in Window := Standard_Window;
-                     Str : in String;
-                     Len : in Integer := -1);
+   procedure Insert (Win : Window := Standard_Window;
+                     Str : String;
+                     Len : Integer := -1);
    --  AKA
    --  ALIAS(`winsstr()')
    --  ALIAS(`insnstr()')
    --  ALIAS(`insstr()')
 
    --  ANCHOR(`mvwinsnstr()',`Insert')
-   procedure Insert (Win    : in Window := Standard_Window;
-                     Line   : in Line_Position;
-                     Column : in Column_Position;
-                     Str    : in String;
-                     Len    : in Integer := -1);
+   procedure Insert (Win    : Window := Standard_Window;
+                     Line   : Line_Position;
+                     Column : Column_Position;
+                     Str    : String;
+                     Len    : Integer := -1);
    --  AKA
    --  ALIAS(`mvwinsstr()')
    --  ALIAS(`mvinsnstr()')
@@ -1082,20 +1531,20 @@
    --  MANPAGE(`curs_instr.3x')
 
    --  ANCHOR(`winnstr()',`Peek')
-   procedure Peek (Win : in  Window := Standard_Window;
+   procedure Peek (Win : Window := Standard_Window;
                    Str : out String;
-                   Len : in  Integer := -1);
+                   Len : Integer := -1);
    --  AKA
    --  ALIAS(`winstr()')
    --  ALIAS(`innstr()')
    --  ALIAS(`instr()')
 
    --  ANCHOR(`mvwinnstr()',`Peek')
-   procedure Peek (Win    : in  Window := Standard_Window;
-                   Line   : in  Line_Position;
-                   Column : in  Column_Position;
+   procedure Peek (Win    : Window := Standard_Window;
+                   Line   : Line_Position;
+                   Column : Column_Position;
                    Str    : out String;
-                   Len    : in  Integer := -1);
+                   Len    : Integer := -1);
    --  AKA
    --  ALIAS(`mvwinstr()')
    --  ALIAS(`mvinnstr()')
@@ -1104,32 +1553,32 @@
    --  MANPAGE(`curs_inchstr.3x')
 
    --  ANCHOR(`winchnstr()',`Peek')
-   procedure Peek (Win : in  Window := Standard_Window;
+   procedure Peek (Win : Window := Standard_Window;
                    Str : out Attributed_String;
-                   Len : in  Integer := -1);
+                   Len : Integer := -1);
    --  AKA
    --  ALIAS(`winchstr()')
    --  ALIAS(`inchnstr()')
    --  ALIAS(`inchstr()')
 
    --  ANCHOR(`mvwinchnstr()',`Peek')
-   procedure Peek (Win    : in  Window := Standard_Window;
-                   Line   : in  Line_Position;
-                   Column : in  Column_Position;
+   procedure Peek (Win    : Window := Standard_Window;
+                   Line   : Line_Position;
+                   Column : Column_Position;
                    Str    : out Attributed_String;
-                   Len    : in  Integer := -1);
+                   Len    : Integer := -1);
    --  AKA
    --  ALIAS(`mvwinchstr()')
    --  ALIAS(`mvinchnstr()')
    --  ALIAS(`mvinchstr()')
-   --  We don't inline the Peek procedures
+   --  We do not inline the Peek procedures
 
    --  MANPAGE(`curs_getstr.3x')
 
    --  ANCHOR(`wgetnstr()',`Get')
-   procedure Get (Win : in  Window := Standard_Window;
+   procedure Get (Win : Window := Standard_Window;
                   Str : out String;
-                  Len : in  Integer := -1);
+                  Len : Integer := -1);
    --  AKA
    --  ALIAS(`wgetstr()')
    --  ALIAS(`getnstr()')
@@ -1138,11 +1587,11 @@
    --  overflows.
 
    --  ANCHOR(`mvwgetnstr()',`Get')
-   procedure Get (Win    : in  Window := Standard_Window;
-                  Line   : in  Line_Position;
-                  Column : in  Column_Position;
+   procedure Get (Win    : Window := Standard_Window;
+                  Line   : Line_Position;
+                  Column : Column_Position;
                   Str    : out String;
-                  Len    : in  Integer := -1);
+                  Len    : Integer := -1);
    --  AKA
    --  ALIAS(`mvwgetstr()')
    --  ALIAS(`mvgetnstr()')
@@ -1162,16 +1611,16 @@
 
    --  ANCHOR(`slk_init()',`Init_Soft_Label_Keys')
    procedure Init_Soft_Label_Keys
-     (Format : in Soft_Label_Key_Format := Three_Two_Three);
+     (Format : Soft_Label_Key_Format := Three_Two_Three);
    --  AKA
    pragma Inline (Init_Soft_Label_Keys);
 
    --  ANCHOR(`slk_set()',`Set_Soft_Label_Key')
-   procedure Set_Soft_Label_Key (Label : in Label_Number;
-                                 Text  : in String;
-                                 Fmt   : in Label_Justification := Left);
+   procedure Set_Soft_Label_Key (Label : Label_Number;
+                                 Text  : String;
+                                 Fmt   : Label_Justification := Left);
    --  AKA
-   --  We don't inline this procedure
+   --  We do not inline this procedure
 
    --  ANCHOR(`slk_refresh()',`Refresh_Soft_Label_Key')
    procedure Refresh_Soft_Label_Keys;
@@ -1184,12 +1633,12 @@
    pragma Inline (Refresh_Soft_Label_Keys_Without_Update);
 
    --  ANCHOR(`slk_label()',`Get_Soft_Label_Key')
-   procedure Get_Soft_Label_Key (Label : in Label_Number;
+   procedure Get_Soft_Label_Key (Label : Label_Number;
                                  Text  : out String);
    --  AKA
 
    --  ANCHOR(`slk_label()',`Get_Soft_Label_Key')
-   function Get_Soft_Label_Key (Label : in Label_Number) return String;
+   function Get_Soft_Label_Key (Label : Label_Number) return String;
    --  AKA
    --  Same as function
    pragma Inline (Get_Soft_Label_Key);
@@ -1211,16 +1660,16 @@
 
    --  ANCHOR(`slk_attron()',`Switch_Soft_Label_Key_Attributes')
    procedure Switch_Soft_Label_Key_Attributes
-     (Attr : in Character_Attribute_Set;
-      On   : in Boolean := True);
+     (Attr : Character_Attribute_Set;
+      On   : Boolean := True);
    --  AKA
    --  ALIAS(`slk_attroff()')
    pragma Inline (Switch_Soft_Label_Key_Attributes);
 
    --  ANCHOR(`slk_attrset()',`Set_Soft_Label_Key_Attributes')
    procedure Set_Soft_Label_Key_Attributes
-     (Attr  : in Character_Attribute_Set := Normal_Video;
-      Color : in Color_Pair := Color_Pair'First);
+     (Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
    --  AKA
    pragma Inline (Set_Soft_Label_Key_Attributes);
 
@@ -1234,7 +1683,7 @@
    pragma Inline (Get_Soft_Label_Key_Attributes);
 
    --  ANCHOR(`slk_color()',`Set_Soft_Label_Key_Color')
-   procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair);
+   procedure Set_Soft_Label_Key_Color (Pair : Color_Pair);
    --  AKA
    pragma Inline (Set_Soft_Label_Key_Color);
 
@@ -1244,16 +1693,16 @@
    --  MANPAGE(`keyok.3x')
 
    --  ANCHOR(`keyok()',`Enable_Key')
-   procedure Enable_Key (Key    : in Special_Key_Code;
-                         Enable : in Boolean := True);
+   procedure Enable_Key (Key    : Special_Key_Code;
+                         Enable : Boolean := True);
    --  AKA
    pragma Inline (Enable_Key);
 
    --  MANPAGE(`define_key.3x')
 
    --  ANCHOR(`define_key()',`Define_Key')
-   procedure Define_Key (Definition : in String;
-                         Key        : in Special_Key_Code);
+   procedure Define_Key (Definition : String;
+                         Key        : Special_Key_Code);
    --  AKA
    pragma Inline (Define_Key);
 
@@ -1264,30 +1713,30 @@
    --
 
    --  ANCHOR(`keyname()',`Key_Name')
-   procedure Key_Name (Key  : in  Real_Key_Code;
+   procedure Key_Name (Key  : Real_Key_Code;
                        Name : out String);
    --  AKA
    --  The external name for a real keystroke.
 
    --  ANCHOR(`keyname()',`Key_Name')
-   function Key_Name (Key  : in  Real_Key_Code) return String;
+   function Key_Name (Key  : Real_Key_Code) return String;
    --  AKA
    --  Same as function
-   --  We don't inline this routine
+   --  We do not inline this routine
 
    --  ANCHOR(`unctrl()',`Un_Control')
-   procedure Un_Control (Ch  : in Attributed_Character;
+   procedure Un_Control (Ch  : Attributed_Character;
                          Str : out String);
    --  AKA
 
    --  ANCHOR(`unctrl()',`Un_Control')
-   function Un_Control (Ch  : in Attributed_Character) return String;
+   function Un_Control (Ch  : Attributed_Character) return String;
    --  AKA
    --  Same as function
    pragma Inline (Un_Control);
 
    --  ANCHOR(`delay_output()',`Delay_Output')
-   procedure Delay_Output (Msecs : in Natural);
+   procedure Delay_Output (Msecs : Natural);
    --  AKA
    pragma Inline (Delay_Output);
 
@@ -1362,14 +1811,14 @@
    pragma Import (C, Start_Color, "start_color");
 
    --  ANCHOR(`init_pair()',`Init_Pair')
-   procedure Init_Pair (Pair : in Redefinable_Color_Pair;
-                        Fore : in Color_Number;
-                        Back : in Color_Number);
+   procedure Init_Pair (Pair : Redefinable_Color_Pair;
+                        Fore : Color_Number;
+                        Back : Color_Number);
    --  AKA
    pragma Inline (Init_Pair);
 
    --  ANCHOR(`pair_content()',`Pair_Content')
-   procedure Pair_Content (Pair : in Color_Pair;
+   procedure Pair_Content (Pair : Color_Pair;
                            Fore : out Color_Number;
                            Back : out Color_Number);
    --  AKA
@@ -1381,10 +1830,10 @@
    pragma Inline (Has_Colors);
 
    --  ANCHOR(`init_color()',`Init_Color')
-   procedure Init_Color (Color : in Color_Number;
-                         Red   : in RGB_Value;
-                         Green : in RGB_Value;
-                         Blue  : in RGB_Value);
+   procedure Init_Color (Color : Color_Number;
+                         Red   : RGB_Value;
+                         Green : RGB_Value;
+                         Blue  : RGB_Value);
    --  AKA
    pragma Inline (Init_Color);
 
@@ -1394,7 +1843,7 @@
    pragma Inline (Can_Change_Color);
 
    --  ANCHOR(`color_content()',`Color_Content')
-   procedure Color_Content (Color : in  Color_Number;
+   procedure Color_Content (Color : Color_Number;
                             Red   : out RGB_Value;
                             Green : out RGB_Value;
                             Blue  : out RGB_Value);
@@ -1407,13 +1856,13 @@
    type Curses_Mode is (Curses, Shell);
 
    --  ANCHOR(`def_prog_mode()',`Save_Curses_Mode')
-   procedure Save_Curses_Mode (Mode : in Curses_Mode);
+   procedure Save_Curses_Mode (Mode : Curses_Mode);
    --  AKA
    --  ALIAS(`def_shell_mode()')
    pragma Inline (Save_Curses_Mode);
 
    --  ANCHOR(`reset_prog_mode()',`Reset_Curses_Mode')
-   procedure Reset_Curses_Mode (Mode : in Curses_Mode);
+   procedure Reset_Curses_Mode (Mode : Curses_Mode);
    --  AKA
    --  ALIAS(`reset_shell_mode()')
    pragma Inline (Reset_Curses_Mode);
@@ -1437,13 +1886,13 @@
    --        and -1 otherwise.
 
    --  ANCHOR(`ripoffline()',`Rip_Off_Lines')
-   procedure Rip_Off_Lines (Lines : in Integer;
-                            Proc  : in Stdscr_Init_Proc);
+   procedure Rip_Off_Lines (Lines : Integer;
+                            Proc  : Stdscr_Init_Proc);
    --  AKA
    --  N.B.: to be more precise, this uses a ncurses specific enhancement of
    --        ripoffline(), in which the Lines argument absolute value is the
    --        number of lines to be ripped of. The official ripoffline() only
-   --        uses the sign of Lines to rip of a single line from bottom or top.
+   --        uses the sign of Lines to remove a single line from bottom or top.
    pragma Inline (Rip_Off_Lines);
 
    type Cursor_Visibility is (Invisible, Normal, Very_Visible);
@@ -1454,7 +1903,7 @@
    pragma Inline (Set_Cursor_Visibility);
 
    --  ANCHOR(`napms()',`Nap_Milli_Seconds')
-   procedure Nap_Milli_Seconds (Ms : in Natural);
+   procedure Nap_Milli_Seconds (Ms : Natural);
    --  AKA
    pragma Inline (Nap_Milli_Seconds);
 
@@ -1463,19 +1912,21 @@
    --  |=====================================================================
    type Transform_Direction is (From_Screen, To_Screen);
    procedure Transform_Coordinates
-     (W      : in Window := Standard_Window;
+     (W      : Window := Standard_Window;
       Line   : in out Line_Position;
       Column : in out Column_Position;
-      Dir    : in Transform_Direction := From_Screen);
+      Dir    : Transform_Direction := From_Screen);
    --  This procedure transforms screen coordinates into coordinates relative
    --  to the window and vice versa, depending on the Dir parameter.
-   --  Screen coordinates are the position informations on the physical device.
+   --  Screen coordinates are the position information for the physical device.
    --  An Curses_Exception will be raised if Line and Column are not in the
    --  Window or if you pass the Null_Window as argument.
-   --  We don't inline this procedure
+   --  We do not inline this procedure
 
    --  MANPAGE(`default_colors.3x')
 
+   Default_Color : constant Color_Number := -1;
+
    --  ANCHOR(`use_default_colors()',`Use_Default_Colors')
    procedure Use_Default_Colors;
    --  AKA
@@ -1507,29 +1958,29 @@
    --  MANPAGE(`curs_scr_dump.3x')
 
    --  ANCHOR(`scr_dump()',`Screen_Dump_To_File')
-   procedure Screen_Dump_To_File (Filename : in String);
+   procedure Screen_Dump_To_File (Filename : String);
    --  AKA
 
    --  ANCHOR(`scr_restore()',`Screen_Restore_From_File')
-   procedure Screen_Restore_From_File (Filename : in String);
+   procedure Screen_Restore_From_File (Filename : String);
    --  AKA
 
    --  ANCHOR(`scr_init()',`Screen_Init_From_File')
-   procedure Screen_Init_From_File (Filename : in String);
+   procedure Screen_Init_From_File (Filename : String);
    --  AKA
 
    --  ANCHOR(`scr_set()',`Screen_Set_File')
-   procedure Screen_Set_File (Filename : in String);
+   procedure Screen_Set_File (Filename : String);
    --  AKA
 
    --  MANPAGE(`curs_print.3x')
-   --  Not implemented:  mcprint
+   --  Not implemented: mcprint
 
    --  MANPAGE(`curs_printw.3x')
    --  Not implemented: printw,  wprintw, mvprintw, mvwprintw, vwprintw,
    --                   vw_printw
    --  Please use the Ada style Text_IO child packages for formatted
-   --  printing. It doesn't make a lot of sense to map the printf style
+   --  printing. It does not make a lot of sense to map the printf style
    --  C functions to Ada.
 
    --  MANPAGE(`curs_scanw.3x')
@@ -1553,7 +2004,11 @@
    --  The next constants are generated and may be different on your
    --  architecture.
    --
-include(`Window_Offsets')dnl
+
+   Sizeof_Bool : constant := Curses_Constants.Sizeof_Bool;
+
+   type Curses_Bool is mod 2 ** Sizeof_Bool;
+
    Curses_Bool_False : constant Curses_Bool := 0;
 
 end Terminal_Interface.Curses;
