separate (Database_Interface)
function Concat (L1, L2 : Language_Features_List)
                return Language_Features_List is
    Temp : Language_Features_List;
    Temp2 : Language_Features_List := L2;
begin
    Temp := Copy (L1);
    if Empty (L2) then
        return Temp;
    end if;
    First (Temp2);
    loop
        Insert_After (Temp, Current_Element (Temp2));
        exit when Tail_Node (Temp2);
        Next (Temp2);
    end loop;
    return Temp;
end Concat;