with ada.text_io; use ada.text_io; 
 
procedure mystrings  is 

    type MyString is array(Positive range <>) of Character;

    -- prints string s in reverse
    procedure revprintln(s: MyString) is
    begin
        for i in reverse s'range loop
            put(s(i));
        end loop;
        new_line;
    end revprintln;

    procedure put_line(s: mystring) is
    begin
        for i in s'range loop
            put(s(i));
        end loop;
        new_line;
    end put_line;

    s: MyString := "Hi Mom!";
begin
    -- let's print this string in reverse
    revprintln(s);

    -- Let's print a slice
    put_line(s(4..7));

    -- What do these print?
    put_line(s(2..4));
    put_line(s(4..4));
    put_line(s(5..4));

    -- s is an array of characters
    s(4) := 'T';
    put_line(s);
end mystrings;