package Opt37 is

   type T_Bit is range 0 .. 1;
   for T_Bit'Size use 1;

   type Positive is range 0 .. (2 ** 31) - 1;
   type Unsigned32 is mod 2 ** 32;

   subtype T_Bit_Count is Positive;
   subtype T_Bit_Index is T_Bit_Count range 1 .. T_Bit_Count'Last;

   type T_Bit_Array is array (T_Bit_Count range <>) of T_Bit;
   pragma Pack (T_Bit_Array);

   function Func (Bit_Array : in T_Bit_Array;
                  Bit_Index : in T_Bit_Index) return Positive;

end Opt37;