func MapInt8Int16(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
}
MapInt8Int16 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 MapIntInt64(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 MapIntInt32(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 MapIntInt16(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 MapIntInt8(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 MapIntUint(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 MapIntUint64(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 MapIntUint32(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 MapIntUint16(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 MapIntUint8(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 MapIntStr(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 MapIntBool(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 MapIntFloat32(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 MapIntFloat64(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 MapInt64Int(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 MapInt64Int32(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 MapInt64Int16(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 MapInt64Int8(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 MapInt64Uint(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 MapInt64Uint64(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 MapInt64Uint32(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 MapInt64Uint16(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 MapInt64Uint8(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 MapInt64Str(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 MapInt64Bool(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 MapInt64Float32(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 MapInt64Float64(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 MapInt32Int(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 MapInt32Int64(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 MapInt32Int16(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 MapInt32Int8(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 MapInt32Uint(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 MapInt32Uint64(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 MapInt32Uint32(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 MapInt32Uint16(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 MapInt32Uint8(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 MapInt32Str(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 MapInt32Bool(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 MapInt32Float32(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 MapInt32Float64(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 MapInt16Int(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 MapInt16Int64(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 MapInt16Int32(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 MapInt16Int8(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 MapInt16Uint(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 MapInt16Uint64(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 MapInt16Uint32(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 MapInt16Uint16(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 MapInt16Uint8(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 MapInt16Str(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 MapInt16Bool(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 MapInt16Float32(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 MapInt16Float64(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 MapInt8Int(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 MapInt8Int64(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 MapInt8Int32(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
}