| generic | |
| type Value_Type is private; | |
| package Predicate5 is | |
| type MT (Has : Boolean := False) is record | |
| case Has is | |
| when False => | |
| null; | |
| when True => | |
| MX : Value_Type; | |
| end case; | |
| end record; | |
| function Foo (M : MT) return Boolean is (not M.Has); | |
| subtype LT is MT with Dynamic_Predicate => not LT.Has; | |
| function Bar (M : MT) return Boolean is (Foo (M)); | |
| procedure Foo; | |
| end; |