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

    The nub function removes duplicate elements from a list. In particular, it
    keeps only the first occurrence of each element. (The name nub means
    `essence'.) It is a special case of nubBy, which allows the programmer to
    supply their own equality test.
    """
    return L[(i for i in set(xs))]
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/nub/original