Q:

Non-visible declaration in specification file (.ads)

I keep getting the errors stated below. I have moved the offending record in and out of the private section of the package but the error presists. I am new to Ada and I am having issues implementing this generic stack to hold an array of records.
I have moved the record and type declarations in and out of the private section. I have also tried adding a "type garagebay is private" declaration before the private section as seen in the code.
-- .ads file --
generic
  low: integer; --lowerbound of stack
  up: integer; -- upperbound of stack
  type item is private; -- type of stack

package gstack is
  type garageBay is private;

  procedure tpush(x: in item);
  procedure tpop(x: out item);
private
  type vehicle is array(1..15) of character;
  type vName is array(1..8) of character;
  type garageBay is record
      vehicleType: vehicle;
      vehicleName: vName;
      time2Fix: integer;
      startTime: integer;
      finishTime: integer;
  end record;
  type entries is array(low..up) of item;
end gstack;

-- driver file
with Ada.Text_IO; use Ada.Text_IO;  -- in file Gusestac.adb
with gstack;  -- generic stack defined in gstack10.ads /.adb
procedure gusestack is
    package IIO is new Ada.Text_IO.Integer_IO(integer); use IIO;
    lowerbound: integer;
    upperbound: integer;
begin
    get(lowerbound);
    get(upperbound);
    declare
      package genericS is new gstack(lowerbound,upperbound, garageBay);
      use genericS;
    begin
      put(""); -- placeholder
    end;
end gusestack;

-- Errors
x86_64-linux-gnu-gcc-8 -c gusestack.adb
gusestack.adb:11:63: "garageBay" is not visible
gusestack.adb:11:63: non-visible declaration at gstack.ads:7
gusestack.adb:11:63: instantiation abandoned
gusestack.adb:12:13: "genericS" is undefined
gnatmake: "gusestack.adb" compilation Error

A:

You are trying to use the type garageBay, defined in the generic package gstack, to create a concrete instance of gstack. You may want to move the type definition garageBay from the private section of gstack into the declarative part of gusestack, before the instantiation of gstack.

