with String_Utilities;
function Line_Image (E : Element) return String is
    function Remove_Underscores_And_Capitialize (S : String) return String is
        Return_String : String (S'First .. S'Last) := S;
    begin
        Return_String (S'First) := String_Utilities.Upper_Case (S (S'First));

        for I in S'First .. S'Last loop
            if Return_String (I) = '_' then
                Return_String (I + 1) :=
                   String_Utilities.Upper_Case (Return_String (I + 1));
            end if;
        end loop;

        return Return_String;
    end Remove_Underscores_And_Capitialize;

begin
    return Remove_Underscores_And_Capitialize
              (String_Utilities.Lower_Case (Element'Image (E)));
end Line_Image;