<succsOf> assigns to each element of <l> a list of successors.
        This function returns the dual, "predsOf" if you will.

def dual_cover(l, succsOf):
    """ <succsOf> assigns to each element of <l> a list of successors.
        This function returns the dual, "predsOf" if you will. """
    lut = dict()
    for i in l:
        lut[i] = list()
    for i in l:
        for j in succsOf(i):
            lut[j].append(i)
    return lambda x: lut[x]