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

    The partition function takes a predicate a list and returns the pair of
    lists of elements which do and do not satisfy the predicate.
    """
    yes, no = [], []
    for item in xs:
        if f(item):
            yes.append(item)
        else:
            no.append(item)
    return L[yes], L[no]


#=============================================================================#
# Indexing lists
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/partition/swapped operands of `/`