A.3.1 The Packages Characters, Wide_Characters, and Wide_Wide_Characters
Static Semantics
The library package 
Characters has the following declaration: 
package Ada.Characters 
is
  pragma Pure(Characters);
end Ada.Characters;
 
The library package 
Wide_Characters has the following declaration: 
package Ada.Wide_Characters 
is
  pragma Pure(Wide_Characters);
end Ada.Wide_Characters;
 
The library package 
Wide_Wide_Characters has the following declaration: 
package Ada.Wide_Wide_Characters 
is
  pragma Pure(Wide_Wide_Characters);
end Ada.Wide_Wide_Characters;
 
Implementation Advice
If an implementation chooses to provide implementation-defined 
operations on Wide_Character or Wide_String (such as collating and sorting, 
etc.) it should do so by providing child units of Wide_Characters. Similarly 
if it chooses to provide implementation-defined operations on Wide_Wide_Character 
or Wide_Wide_String it should do so by providing child units of Wide_Wide_Characters. 
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe