separate (Halstead_List)
function Length_Of (This_List : in List) return Natural is
    --==============================================================
    -- Returns the number of items in The_List.                   ==
    -- ZERO will be returned if The_List is empty.                ==
    --==============================================================

    Current_Pointer : List := This_List;
    Current_Length : Natural := 0;

begin
    -- Length_Of

    Find_Length:
        while Current_Pointer /= null loop
            Current_Length := Current_Length + 1;
            Current_Pointer := Current_Pointer.Next;
        end loop Find_Length;

    return Current_Length;

end Length_Of;