generic type Item is limited private; type Index is (<>); type Items is array (Index range <>) of Item; with function "=" (Left : in Item; Right : in Item) return Boolean; package Pattern_Match_Knuth_Morris_Pratt is function Location_Of (The_Pattern : in Items; In_The_Items : in Items) return Index; Pattern_Not_Found : exception; end Pattern_Match_Knuth_Morris_Pratt;