func ZipInt64Uint16(list1 []int64, list2 []uint16) map[int64]uint16 {
	newMap := make(map[int64]uint16)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
ZipInt64Uint16 takes two inputs: first list of type: []int64, second list of type: []uint16.
Then it merges two list and returns a new map of type: map[int64]uint16
package fp
func ZipInt(list1 []int, list2 []int) map[int]int {
	newMap := make(map[int]int)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntInt64(list1 []int, list2 []int64) map[int]int64 {
	newMap := make(map[int]int64)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntInt32(list1 []int, list2 []int32) map[int]int32 {
	newMap := make(map[int]int32)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntInt16(list1 []int, list2 []int16) map[int]int16 {
	newMap := make(map[int]int16)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntInt8(list1 []int, list2 []int8) map[int]int8 {
	newMap := make(map[int]int8)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntUint(list1 []int, list2 []uint) map[int]uint {
	newMap := make(map[int]uint)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntUint64(list1 []int, list2 []uint64) map[int]uint64 {
	newMap := make(map[int]uint64)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntUint32(list1 []int, list2 []uint32) map[int]uint32 {
	newMap := make(map[int]uint32)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntUint16(list1 []int, list2 []uint16) map[int]uint16 {
	newMap := make(map[int]uint16)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntUint8(list1 []int, list2 []uint8) map[int]uint8 {
	newMap := make(map[int]uint8)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntStr(list1 []int, list2 []string) map[int]string {
	newMap := make(map[int]string)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntBool(list1 []int, list2 []bool) map[int]bool {
	newMap := make(map[int]bool)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntFloat32(list1 []int, list2 []float32) map[int]float32 {
	newMap := make(map[int]float32)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipIntFloat64(list1 []int, list2 []float64) map[int]float64 {
	newMap := make(map[int]float64)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64Int(list1 []int64, list2 []int) map[int64]int {
	newMap := make(map[int64]int)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64(list1 []int64, list2 []int64) map[int64]int64 {
	newMap := make(map[int64]int64)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64Int32(list1 []int64, list2 []int32) map[int64]int32 {
	newMap := make(map[int64]int32)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64Int16(list1 []int64, list2 []int16) map[int64]int16 {
	newMap := make(map[int64]int16)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64Int8(list1 []int64, list2 []int8) map[int64]int8 {
	newMap := make(map[int64]int8)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64Uint(list1 []int64, list2 []uint) map[int64]uint {
	newMap := make(map[int64]uint)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64Uint64(list1 []int64, list2 []uint64) map[int64]uint64 {
	newMap := make(map[int64]uint64)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}
func ZipInt64Uint32(list1 []int64, list2 []uint32) map[int64]uint32 {
	newMap := make(map[int64]uint32)
	len1 := len(list1)
	len2 := len(list2)
	if len1 == 0 || len2 == 0 {
		return newMap
	}
	minLen := len1
	if len2 < minLen {
		minLen = len2
	}
	for i := 0; i < minLen; i++ {
		newMap[list1[i]] = list2[i]
	}
	return newMap
}