with Lines;
package Line_Iterator_Operations_Solution is

    generic
        type Information is private;

        with function Count (Info : Information; The_Line : Lines.Line)
                            return Integer;
    procedure Total_Count (Info : Information;
                           Iter : in out Lines.Line_Iterator;
                           Total : out Integer);

    -- returns the total number of the character type in all lines
    --

    generic
        with procedure Put_Line (The_Line : Lines.Line);
    procedure Put_All (Iter : in out Lines.Line_Iterator);

    -- puts all the lines in an iterator
    --

end Line_Iterator_Operations_Solution;