@sig((H/ "a" >> bool)/ H >> ["a"] >> ["a"])
def takeWhile(p, xs):
    """
    takeWhile :: (a -> Bool) -> [a] -> [a]

    takeWhile, applied to a predicate p and a list xs, returns the longest
    prefix (possibly empty) of xs of elements that satisfy p
    """
    return L[itertools.takewhile(p, xs)]
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/takeWhile/swapped operands of `/`