I'm trying to build a generic linked list in Ada off of a generic Node class. However, I'm unable to access types and formal parameters of my Node inside of my Linked List, despite using a with clause and prefixing accordingly.
genericnode.ads:
generic
type item_type is private;
package GenericNode is
type Node is limited private;
type NodePtr is access Node;
procedure GetData(n : in Node; e : out item_type);
procedure GetNext(n : in Node; x : out NodePtr);
procedure SetData(n : in out Node; e : in item_type);
procedure SetNext(n : in out Node; x : in NodePtr);
private
type Node is
record
data : item_type;
next : NodePtr;
end record;
end GenericNode;
genericsll.ads:
with GenericNode;
generic
size : Positive;
type node_type is private;
package GenericSLL is
type SLL is limited private;
procedure Append(s : in out SLL; d : in GenericNode.item_type);
procedure PrintTraversal(s : in SLL);
private
type SLL is
record
head : NodePtr := null;
length : Positive := 0;
end record;
end GenericSLL;
Upon compilation, I'm told Invalid prefix in selected component "GenericNode" and "NodePtr" is not visible regarding genericsll.ads. Any suggestions? Thanks!