In article <38CA05AF.7E77790D@online.no>, "Tarjei Tj�stheim Jensen" wrote: > > > That is really a workaround. I think both he and I would have preferred > something like > > pragma disallow_predefined(operator => "/", a_type, a_type); > pragma disallow_predefined(operator => all, all, a_type); > pragma allow_predefined(operator => "+", a_type, a_type); > pragma map_predefined_result(result_type => integer, operator => "/", a_type, > a_type); > > I think that would be more readable and a lot less work. It will of course not > work very well with a nonconforming compiler. I do not think that using pragmas (there are already too many of them) is a right way. Anyway a more general solution is required. Some time ago I proposed explicit operation hiding, something like: package Unordered_Numbers is type Unordered is new Integer; function ">" (Left, Right : Unordered) return Boolean is null; function ">=" (Left, Right : Unordered) return Boolean is null; function "<" (Left, Right : Unordered) return Boolean is null; function "<=" (Left, Right : Unordered) return Boolean is null; end Unordered_Numbers; It was considered too complex to implement. Regards, Dmitry Sent via Deja.com http://www.deja.com/ Before you buy.