This
Annex contains the specifications of library units that shall be provided
by every implementation. There are three root library units: Ada, Interfaces,
and System; other library units are children of these:
The implementation shall ensure that each language-defined
subprogram is reentrant
in the sense that concurrent
calls on the same subprogram perform as specified, so long as all parameters
that could be passed by reference denote nonoverlapping objects.
The implementation may restrict the replacement of
language-defined compilation units. The implementation may restrict children
of language-defined library units (other than Standard).