from typing import List


def assert_empty_line_between_description_and_param_list(
    docstring: List[str]
) -> List[str]:
    """
    make sure empty line between description and list of params
    find first param in docstring and check if there is description above it
    if so, make sure that there is empty line between description and param list
    
    :param docstring: list of lines in docstring
    :return: list of lines in docstring
    """
    prefixes = [":param", ":return", ":raises"]
    start_of_param_list = -1

    for i in range(len(docstring)):
        line = docstring[i].strip()
        # check if it starts with prefix
        for prefix in prefixes:
            if line.startswith(prefix) and i > 1:
                start_of_param_list = i
                break

        if start_of_param_list != -1:
            break

    if start_of_param_list == -1:
        return docstring

    # remove all empty lines before param list and enter a single empty line before param list
    while docstring[start_of_param_list - 1].strip() == "":
        docstring.pop(start_of_param_list - 1)
        start_of_param_list -= 1

    docstring.insert(start_of_param_list, "")

    return docstring