func MinMaxUint64Ptr(list []*uint64) (*uint64, *uint64) {
	var zero uint64
	if list == nil || len(list) == 0 {
		return &zero, &zero
	}
	min := list[0]
	max := list[0]
	for _, v := range list {
		if *v < *min {
			min = v
		} else if *v > *max {
			max = v
		}
	}
	return min, max
}
MinMaxUint64Ptr returns min and max items from the list.
Return 0,0 if the list is either empty or nil
package fp
func MinMaxIntPtr(list []*int) (*int, *int) {
	var zero int
	if list == nil || len(list) == 0 {
		return &zero, &zero
	}
	min := list[0]
	max := list[0]
	for _, v := range list {
		if *v < *min {
			min = v
		} else if *v > *max {
			max = v
		}
	}
	return min, max
}
func MinMaxInt64Ptr(list []*int64) (*int64, *int64) {
	var zero int64
	if list == nil || len(list) == 0 {
		return &zero, &zero
	}
	min := list[0]
	max := list[0]
	for _, v := range list {
		if *v < *min {
			min = v
		} else if *v > *max {
			max = v
		}
	}
	return min, max
}
func MinMaxInt32Ptr(list []*int32) (*int32, *int32) {
	var zero int32
	if list == nil || len(list) == 0 {
		return &zero, &zero
	}
	min := list[0]
	max := list[0]
	for _, v := range list {
		if *v < *min {
			min = v
		} else if *v > *max {
			max = v
		}
	}
	return min, max
}
func MinMaxInt16Ptr(list []*int16) (*int16, *int16) {
	var zero int16
	if list == nil || len(list) == 0 {
		return &zero, &zero
	}
	min := list[0]
	max := list[0]
	for _, v := range list {
		if *v < *min {
			min = v
		} else if *v > *max {
			max = v
		}
	}
	return min, max
}
func MinMaxInt8Ptr(list []*int8) (*int8, *int8) {
	var zero int8
	if list == nil || len(list) == 0 {
		return &zero, &zero
	}
	min := list[0]
	max := list[0]
	for _, v := range list {
		if *v < *min {
			min = v
		} else if *v > *max {
			max = v
		}
	}
	return min, max
}
func MinMaxUintPtr(list []*uint) (*uint, *uint) {
	var zero uint
	if list == nil || len(list) == 0 {
		return &zero, &zero
	}
	min := list[0]
	max := list[0]
	for _, v := range list {
		if *v < *min {
			min = v
		} else if *v > *max {
			max = v
		}
	}
	return min, max
}