1generic 2package Predicate6 is 3 type Price_Kind is (Infinitely_Small, Normal, Infinitely_Large); 4 subtype Infinite_Kind is Price_Kind with Static_Predicate => 5 Infinite_Kind in Infinitely_Small | Infinitely_Large; 6 function "not" (Kind : Infinite_Kind) return Infinite_Kind is 7 (case Kind is when Infinitely_Small => Infinitely_Large, 8 when Infinitely_Large => Infinitely_Small); 9 procedure Foo; 10end; 11