func DistinctInt16Ptr(list []*int16) []*int16 {
	var newList []*int16
	s := make(map[int16]struct{}, len(list))
	for _, v := range list {
		if _, ok := s[*v]; ok {
			continue
		}
		s[*v] = struct{}{}
		newList = append(newList, v)
	}
	return newList
}
DistinctInt16Ptr removes duplicates.
package fp
func DistinctIntPtr(list []*int) []*int {
	var newList []*int
	s := make(map[int]struct{}, len(list))
	for _, v := range list {
		if _, ok := s[*v]; ok {
			continue
		}
		s[*v] = struct{}{}
		newList = append(newList, v)
	}
	return newList
}
func DistinctInt64Ptr(list []*int64) []*int64 {
	var newList []*int64
	s := make(map[int64]struct{}, len(list))
	for _, v := range list {
		if _, ok := s[*v]; ok {
			continue
		}
		s[*v] = struct{}{}
		newList = append(newList, v)
	}
	return newList
}
func DistinctInt32Ptr(list []*int32) []*int32 {
	var newList []*int32
	s := make(map[int32]struct{}, len(list))
	for _, v := range list {
		if _, ok := s[*v]; ok {
			continue
		}
		s[*v] = struct{}{}
		newList = append(newList, v)
	}
	return newList
}