-- This source is licensed under the Sunset License v1.0 with Packrat.Tokens; generic type Lab_Enum is (<>); type Elem_Type is private; type Elem_Array is array (Positive range <>) of Elem_Type; with function "<" (Left, Right : in Elem_Type) return Boolean is <>; package Packrat.Traits is -- Should these even really be necessary, or should the original -- types be visible even to packages that Traits gets passed to? -- I have no idea. subtype Label_Enum is Lab_Enum; subtype Element_Type is Elem_Type; subtype Element_Array is Elem_Array; function "<" (Left, Right : in Element_Array) return Boolean; package Tokens is new Packrat.Tokens (Label_Enum, Element_Type, Element_Array); end Packrat.Traits;