from typing import Tuple


def find_lines_intersection(
    l0: Tuple[float, float],
    l1: Tuple[float, float]
) -> Tuple[float, float]:
    """
    Function calculating the intersection of 2 lines given their parameters (a, b)

    Args:
        l1 (Tuple[float, float]): Parameters describing the first line.
        l2 (Tuple[float, float]): Parameters describing the second line.

    Returns:
        Tuple[float, float]: Returns the location of the points (x, y)
    """

    a0, b0 = l0
    a1, b1 = l1

    assert isinstance(a0, float), "a0 must be a float"
    assert isinstance(b0, float), "b0 must be a float"
    assert isinstance(a1, float), "a1 must be a float"
    assert isinstance(b1, float), "b1 must be a float"
    assert l0 != l1, "Lines should be distict otherwise there is an infinite number of solutions"

    # We look for the point where a0 * x + b0 = a1 * x + b1
    # We solve for x

    x = - (b1 - b0) / (a1 - a0)

    # Plug into one of the equations

    y = a0 * x + b0

    return x, y