Proper handling of the num() predefined operator in Ada