func ZipInt64Uint8Ptr(list1 []*int64, list2 []*uint8) map[*int64]*uint8 {
	newMap := make(map[*int64]*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
}
ZipInt64Uint8Ptr takes two inputs: first list of type: []int64, second list of type: []uint8.
Then it merges two list and returns a new map of type: map[int64]uint8
package fp
func ZipIntPtr(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 ZipIntInt64Ptr(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 ZipIntInt32Ptr(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 ZipIntInt16Ptr(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 ZipIntInt8Ptr(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 ZipIntUintPtr(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 ZipIntUint64Ptr(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 ZipIntUint32Ptr(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 ZipIntUint16Ptr(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 ZipIntUint8Ptr(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 ZipIntStrPtr(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 ZipIntBoolPtr(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 ZipIntFloat32Ptr(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 ZipIntFloat64Ptr(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 ZipInt64IntPtr(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 ZipInt64Ptr(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 ZipInt64Int32Ptr(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 ZipInt64Int16Ptr(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 ZipInt64Int8Ptr(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 ZipInt64UintPtr(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 ZipInt64Uint64Ptr(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 ZipInt64Uint32Ptr(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
}
func ZipInt64Uint16Ptr(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
}