@sig(["a"]/ H[(Eq, "a")] >> ["a"] >> ["a"])
def union(xs, ys):
    """
    union :: Eq a => [a] -> [a] -> [a]

    The union function returns the list union of the two lists.

    Duplicates, and elements of the first list, are removed from the the second
    list, but if the first list contains duplicates, so will the result. It is
    a special case of unionBy, which allows the programmer to supply their own
    equality test.
    """
    raise NotImplementedError()
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/union/swapped operands of `/`