func MapUintUint32Ptr(f func(*uint) *uint32, list []*uint) []*uint32 {
	if f == nil {
		return []*uint32{}
	}
	newList := make([]*uint32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
MapUintUint32Ptr takes two inputs -
1. Function 2. List. Then It returns a new list after applying the function on each item of the list
package fp
func MapIntInt64Ptr(f func(*int) *int64, list []*int) []*int64 {
	if f == nil {
		return []*int64{}
	}
	newList := make([]*int64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntInt32Ptr(f func(*int) *int32, list []*int) []*int32 {
	if f == nil {
		return []*int32{}
	}
	newList := make([]*int32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntInt16Ptr(f func(*int) *int16, list []*int) []*int16 {
	if f == nil {
		return []*int16{}
	}
	newList := make([]*int16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntInt8Ptr(f func(*int) *int8, list []*int) []*int8 {
	if f == nil {
		return []*int8{}
	}
	newList := make([]*int8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUintPtr(f func(*int) *uint, list []*int) []*uint {
	if f == nil {
		return []*uint{}
	}
	newList := make([]*uint, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint64Ptr(f func(*int) *uint64, list []*int) []*uint64 {
	if f == nil {
		return []*uint64{}
	}
	newList := make([]*uint64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint32Ptr(f func(*int) *uint32, list []*int) []*uint32 {
	if f == nil {
		return []*uint32{}
	}
	newList := make([]*uint32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint16Ptr(f func(*int) *uint16, list []*int) []*uint16 {
	if f == nil {
		return []*uint16{}
	}
	newList := make([]*uint16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint8Ptr(f func(*int) *uint8, list []*int) []*uint8 {
	if f == nil {
		return []*uint8{}
	}
	newList := make([]*uint8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntStrPtr(f func(*int) *string, list []*int) []*string {
	if f == nil {
		return []*string{}
	}
	newList := make([]*string, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntBoolPtr(f func(*int) *bool, list []*int) []*bool {
	if f == nil {
		return []*bool{}
	}
	newList := make([]*bool, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntFloat32Ptr(f func(*int) *float32, list []*int) []*float32 {
	if f == nil {
		return []*float32{}
	}
	newList := make([]*float32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntFloat64Ptr(f func(*int) *float64, list []*int) []*float64 {
	if f == nil {
		return []*float64{}
	}
	newList := make([]*float64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64IntPtr(f func(*int64) *int, list []*int64) []*int {
	if f == nil {
		return []*int{}
	}
	newList := make([]*int, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Int32Ptr(f func(*int64) *int32, list []*int64) []*int32 {
	if f == nil {
		return []*int32{}
	}
	newList := make([]*int32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Int16Ptr(f func(*int64) *int16, list []*int64) []*int16 {
	if f == nil {
		return []*int16{}
	}
	newList := make([]*int16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Int8Ptr(f func(*int64) *int8, list []*int64) []*int8 {
	if f == nil {
		return []*int8{}
	}
	newList := make([]*int8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64UintPtr(f func(*int64) *uint, list []*int64) []*uint {
	if f == nil {
		return []*uint{}
	}
	newList := make([]*uint, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Uint64Ptr(f func(*int64) *uint64, list []*int64) []*uint64 {
	if f == nil {
		return []*uint64{}
	}
	newList := make([]*uint64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Uint32Ptr(f func(*int64) *uint32, list []*int64) []*uint32 {
	if f == nil {
		return []*uint32{}
	}
	newList := make([]*uint32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Uint16Ptr(f func(*int64) *uint16, list []*int64) []*uint16 {
	if f == nil {
		return []*uint16{}
	}
	newList := make([]*uint16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Uint8Ptr(f func(*int64) *uint8, list []*int64) []*uint8 {
	if f == nil {
		return []*uint8{}
	}
	newList := make([]*uint8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64StrPtr(f func(*int64) *string, list []*int64) []*string {
	if f == nil {
		return []*string{}
	}
	newList := make([]*string, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64BoolPtr(f func(*int64) *bool, list []*int64) []*bool {
	if f == nil {
		return []*bool{}
	}
	newList := make([]*bool, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Float32Ptr(f func(*int64) *float32, list []*int64) []*float32 {
	if f == nil {
		return []*float32{}
	}
	newList := make([]*float32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Float64Ptr(f func(*int64) *float64, list []*int64) []*float64 {
	if f == nil {
		return []*float64{}
	}
	newList := make([]*float64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32IntPtr(f func(*int32) *int, list []*int32) []*int {
	if f == nil {
		return []*int{}
	}
	newList := make([]*int, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Int64Ptr(f func(*int32) *int64, list []*int32) []*int64 {
	if f == nil {
		return []*int64{}
	}
	newList := make([]*int64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Int16Ptr(f func(*int32) *int16, list []*int32) []*int16 {
	if f == nil {
		return []*int16{}
	}
	newList := make([]*int16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Int8Ptr(f func(*int32) *int8, list []*int32) []*int8 {
	if f == nil {
		return []*int8{}
	}
	newList := make([]*int8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32UintPtr(f func(*int32) *uint, list []*int32) []*uint {
	if f == nil {
		return []*uint{}
	}
	newList := make([]*uint, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Uint64Ptr(f func(*int32) *uint64, list []*int32) []*uint64 {
	if f == nil {
		return []*uint64{}
	}
	newList := make([]*uint64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Uint32Ptr(f func(*int32) *uint32, list []*int32) []*uint32 {
	if f == nil {
		return []*uint32{}
	}
	newList := make([]*uint32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Uint16Ptr(f func(*int32) *uint16, list []*int32) []*uint16 {
	if f == nil {
		return []*uint16{}
	}
	newList := make([]*uint16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Uint8Ptr(f func(*int32) *uint8, list []*int32) []*uint8 {
	if f == nil {
		return []*uint8{}
	}
	newList := make([]*uint8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32StrPtr(f func(*int32) *string, list []*int32) []*string {
	if f == nil {
		return []*string{}
	}
	newList := make([]*string, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32BoolPtr(f func(*int32) *bool, list []*int32) []*bool {
	if f == nil {
		return []*bool{}
	}
	newList := make([]*bool, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Float32Ptr(f func(*int32) *float32, list []*int32) []*float32 {
	if f == nil {
		return []*float32{}
	}
	newList := make([]*float32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt32Float64Ptr(f func(*int32) *float64, list []*int32) []*float64 {
	if f == nil {
		return []*float64{}
	}
	newList := make([]*float64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16IntPtr(f func(*int16) *int, list []*int16) []*int {
	if f == nil {
		return []*int{}
	}
	newList := make([]*int, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Int64Ptr(f func(*int16) *int64, list []*int16) []*int64 {
	if f == nil {
		return []*int64{}
	}
	newList := make([]*int64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Int32Ptr(f func(*int16) *int32, list []*int16) []*int32 {
	if f == nil {
		return []*int32{}
	}
	newList := make([]*int32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Int8Ptr(f func(*int16) *int8, list []*int16) []*int8 {
	if f == nil {
		return []*int8{}
	}
	newList := make([]*int8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16UintPtr(f func(*int16) *uint, list []*int16) []*uint {
	if f == nil {
		return []*uint{}
	}
	newList := make([]*uint, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Uint64Ptr(f func(*int16) *uint64, list []*int16) []*uint64 {
	if f == nil {
		return []*uint64{}
	}
	newList := make([]*uint64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Uint32Ptr(f func(*int16) *uint32, list []*int16) []*uint32 {
	if f == nil {
		return []*uint32{}
	}
	newList := make([]*uint32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Uint16Ptr(f func(*int16) *uint16, list []*int16) []*uint16 {
	if f == nil {
		return []*uint16{}
	}
	newList := make([]*uint16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Uint8Ptr(f func(*int16) *uint8, list []*int16) []*uint8 {
	if f == nil {
		return []*uint8{}
	}
	newList := make([]*uint8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16StrPtr(f func(*int16) *string, list []*int16) []*string {
	if f == nil {
		return []*string{}
	}
	newList := make([]*string, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16BoolPtr(f func(*int16) *bool, list []*int16) []*bool {
	if f == nil {
		return []*bool{}
	}
	newList := make([]*bool, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Float32Ptr(f func(*int16) *float32, list []*int16) []*float32 {
	if f == nil {
		return []*float32{}
	}
	newList := make([]*float32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt16Float64Ptr(f func(*int16) *float64, list []*int16) []*float64 {
	if f == nil {
		return []*float64{}
	}
	newList := make([]*float64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8IntPtr(f func(*int8) *int, list []*int8) []*int {
	if f == nil {
		return []*int{}
	}
	newList := make([]*int, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Int64Ptr(f func(*int8) *int64, list []*int8) []*int64 {
	if f == nil {
		return []*int64{}
	}
	newList := make([]*int64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Int32Ptr(f func(*int8) *int32, list []*int8) []*int32 {
	if f == nil {
		return []*int32{}
	}
	newList := make([]*int32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Int16Ptr(f func(*int8) *int16, list []*int8) []*int16 {
	if f == nil {
		return []*int16{}
	}
	newList := make([]*int16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8UintPtr(f func(*int8) *uint, list []*int8) []*uint {
	if f == nil {
		return []*uint{}
	}
	newList := make([]*uint, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Uint64Ptr(f func(*int8) *uint64, list []*int8) []*uint64 {
	if f == nil {
		return []*uint64{}
	}
	newList := make([]*uint64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Uint32Ptr(f func(*int8) *uint32, list []*int8) []*uint32 {
	if f == nil {
		return []*uint32{}
	}
	newList := make([]*uint32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Uint16Ptr(f func(*int8) *uint16, list []*int8) []*uint16 {
	if f == nil {
		return []*uint16{}
	}
	newList := make([]*uint16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Uint8Ptr(f func(*int8) *uint8, list []*int8) []*uint8 {
	if f == nil {
		return []*uint8{}
	}
	newList := make([]*uint8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8StrPtr(f func(*int8) *string, list []*int8) []*string {
	if f == nil {
		return []*string{}
	}
	newList := make([]*string, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8BoolPtr(f func(*int8) *bool, list []*int8) []*bool {
	if f == nil {
		return []*bool{}
	}
	newList := make([]*bool, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Float32Ptr(f func(*int8) *float32, list []*int8) []*float32 {
	if f == nil {
		return []*float32{}
	}
	newList := make([]*float32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt8Float64Ptr(f func(*int8) *float64, list []*int8) []*float64 {
	if f == nil {
		return []*float64{}
	}
	newList := make([]*float64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapUintIntPtr(f func(*uint) *int, list []*uint) []*int {
	if f == nil {
		return []*int{}
	}
	newList := make([]*int, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapUintInt64Ptr(f func(*uint) *int64, list []*uint) []*int64 {
	if f == nil {
		return []*int64{}
	}
	newList := make([]*int64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapUintInt32Ptr(f func(*uint) *int32, list []*uint) []*int32 {
	if f == nil {
		return []*int32{}
	}
	newList := make([]*int32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapUintInt16Ptr(f func(*uint) *int16, list []*uint) []*int16 {
	if f == nil {
		return []*int16{}
	}
	newList := make([]*int16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapUintInt8Ptr(f func(*uint) *int8, list []*uint) []*int8 {
	if f == nil {
		return []*int8{}
	}
	newList := make([]*int8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapUintUint64Ptr(f func(*uint) *uint64, list []*uint) []*uint64 {
	if f == nil {
		return []*uint64{}
	}
	newList := make([]*uint64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}