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; |