I disagree with Jeffrey's opinion on what is a reasonable solution here.
More in-line below.
Hm. I agree visibility is important, but it is hardly the only important
Ada concept.
> Recommending the use package clause as a solution to a misunderstanding
> of visibility is a disservice to a beginning user.
Yes, unless the recommendation also includes explaining what the "use
package" does, thus increasing the user's understanding of visibility.
> In decreasing order of specificity, the ways to call an operation in a
> pkg are
>
> * Use the full name: Ada.Numerics.Elementary_Functions."**" (10.0, Logs)
> This calls the operation once without changing its visibility
An application that needs "**" is likely to need other operators. Using
the fully qualified names makes non-trivial expressions much harder to
read and write. In the special case of a very few uses of very few
operators, I agree that this is a workable solution.
> * Rename the operation:
> function "**" (Left : Float; Right : Float) return Float renames
> Ada.Numerics.Elementary_Functions."**";
> This makes the specific operation visible
Before Ada got "use type", such renaming declarations were the only
alternative to "use package", but they are verbose and proved (in my
experience, and that of others too) to be very error-prone, mainly when
renaming many operators -- copy-paste errors were rampant and hard to
find by reading. Interesting effects occur when "-" is renamed as "+" or
vice versa. I consider this solution to be the last (worst) choice.
> * Use type: this makes all operators of the type visible (not applicable
> in this case)
> * Use all type: this makes all operations of the type visible (not
> applicable in this case)
These are IMO usually the best methods but, as you say, not applicable here.
> * Use package: this makes everything in the package visible
>
> Use pkg is clearly overkill for this case,
I disagree. If the code uses several operators from the package, a "use
package" is apt (because "use type" does not apply here), but should of
course be as local as possible.
> and overuse of it can have negative consequences.
Agreed.