func MapInt64PtrErr(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
}
MapInt64PtrErr takes 2 arguments:
1. A function input argument: *int64 and return types (*int64, error)
2. A list of type []*int64

Returns:
([]*int64, error)
package fp
func MapIntPtrErr(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
}