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