generic type Label_Enum is (<>); type Element is private; type Element_Array is array (Positive range <>) of Element; with package Gen_Tokens is new Tokens (Label_Enum, Element, Element_Array); package Packrat.Lexer is type Combinator is access function (Input : in Element_Array; Start : in Positive; Length : out Natural; Value : out Element_Array) return Result; type Combinator_Array is array (Positive range <>) of Combinator; private end Packrat.Lexer;