func MapUint64Err(f func(uint64) (uint64, error), list []uint64) ([]uint64, error) {
	if f == nil {
		return []uint64{}, nil
	}
	newList := make([]uint64, len(list))
	for i, v := range list {
		var err error
		newList[i], err = f(v)
		if err != nil {
			return nil, err
		}
	}
	return newList, nil
}
MapUint64Err takes 2 arguments:
1. A function input argument: uint64 and return types (uint64, error)
2. A list of type []uint64

Returns:
([]uint64, error)
package fp
func MapIntErr(f func(int) (int, error), list []int) ([]int, error) {
	if f == nil {
		return []int{}, nil
	}
	newList := make([]int, len(list))
	for i, v := range list {
		var err error
		newList[i], err = f(v)
		if err != nil {
			return nil, err
		}
	}
	return newList, nil
}
func MapInt64Err(f func(int64) (int64, error), list []int64) ([]int64, error) {
	if f == nil {
		return []int64{}, nil
	}
	newList := make([]int64, len(list))
	for i, v := range list {
		var err error
		newList[i], err = f(v)
		if err != nil {
			return nil, err
		}
	}
	return newList, nil
}
func MapInt32Err(f func(int32) (int32, error), list []int32) ([]int32, error) {
	if f == nil {
		return []int32{}, nil
	}
	newList := make([]int32, len(list))
	for i, v := range list {
		var err error
		newList[i], err = f(v)
		if err != nil {
			return nil, err
		}
	}
	return newList, nil
}
func MapInt16Err(f func(int16) (int16, error), list []int16) ([]int16, error) {
	if f == nil {
		return []int16{}, nil
	}
	newList := make([]int16, len(list))
	for i, v := range list {
		var err error
		newList[i], err = f(v)
		if err != nil {
			return nil, err
		}
	}
	return newList, nil
}
func MapInt8Err(f func(int8) (int8, error), list []int8) ([]int8, error) {
	if f == nil {
		return []int8{}, nil
	}
	newList := make([]int8, len(list))
	for i, v := range list {
		var err error
		newList[i], err = f(v)
		if err != nil {
			return nil, err
		}
	}
	return newList, nil
}
func MapUintErr(f func(uint) (uint, error), list []uint) ([]uint, error) {
	if f == nil {
		return []uint{}, nil
	}
	newList := make([]uint, len(list))
	for i, v := range list {
		var err error
		newList[i], err = f(v)
		if err != nil {
			return nil, err
		}
	}
	return newList, nil
}