def lazyCollapseBooleanProofs(left, right):
    """
    Function for reduce that (lazily) performs
    boolean conjunction operator on a list
    of 2-tuples, a boolean value and some object
    . The boolean conjunction is applied on the
    first item in each 2-tuple
    """
    (leftBool, leftNode) = left
    (rightBool, rightNode) = right
    if not leftBool:
        return False, None
    else:
        return (leftBool and rightBool) and (True, rightNode) or (False, None)