Programación en Ada/Unidades predefinidas/Ada.Strings.Unbounded
Los Unbounded_String a diferencia de los strings nativos no son arrays, eso quiere decir que no se les puede aplicar el atributo 'Range ni los parentesis para indexar. En vez de eso son un tipo privado que tiene en su paquete (el Ada.Strings.Unbounded) todas las operaciones necesarias para reemplazar caracteres (Replace_Element), convertir a string (To_String) y desde string (To_Unbounded_String), concatenar (operador "&"), reemplazar subcadenas del Unbounded_String por otras (Replace_Slice), buscar subcadenas (Index), etc.
La ventaja de un Unbounded_String es que puede crecer y decrecer sin límite (o sin otro límite que la memoria disponible).