/**
 * Given two tuples, return a new tuple representing the intersection of the two tuples.
 *
 * @param tup1 First input tuple
 * @param tup2 Second input tuple
 * @return New tuple representing the intersection of the input tuples
 */
fun unionOfTuples(tup1: List<Any>, tup2: List<Any>): List<Any> {

    return (tup1.toSet() intersect tup2.toSet()).toList()
}
/**
 * Given two tuples, return a new tuple representing the intersection of the two tuples.
 *
 * @param tup1 First input tuple
 * @param tup2 Second input tuple
 * @return New tuple representing the intersection of the input tuples
 */
fun unionOfTuples(tup1: List<Any>, tup2: List<Any>): List<Any> {
/**
 * Given two tuples, return a new tuple representing the intersection of the two tuples.
 *
 * @param tup1 First input tuple
 * @param tup2 Second input tuple
 * @return New tuple representing the intersection of the input tuples
 */
fun unionOfTuples(tup1: List<Any>, tup2: List<Any>): List<Any> {

    return (tup1.toSet() intersect tup2.toSet()).toList()
}