func SetUint64Ptr(list []*uint64) []*uint64 {
	if list == nil || len(list) == 0 {
		return []*uint64{}
	}
	resultMap := make(map[uint64]struct{})
	newList := []*uint64{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[*list[i]]
		if !ok {
			resultMap[*list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
SetUint64Ptr returns a set of the distinct elements of coll.
package fp
func SetInt(list []int) []int {
	if list == nil || len(list) == 0 {
		return []int{}
	}
	resultMap := make(map[int]struct{})
	newList := []int{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[list[i]]
		if !ok {
			resultMap[list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetIntPtr(list []*int) []*int {
	if list == nil || len(list) == 0 {
		return []*int{}
	}
	resultMap := make(map[int]struct{})
	newList := []*int{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[*list[i]]
		if !ok {
			resultMap[*list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt64(list []int64) []int64 {
	if list == nil || len(list) == 0 {
		return []int64{}
	}
	resultMap := make(map[int64]struct{})
	newList := []int64{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[list[i]]
		if !ok {
			resultMap[list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt64Ptr(list []*int64) []*int64 {
	if list == nil || len(list) == 0 {
		return []*int64{}
	}
	resultMap := make(map[int64]struct{})
	newList := []*int64{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[*list[i]]
		if !ok {
			resultMap[*list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt32(list []int32) []int32 {
	if list == nil || len(list) == 0 {
		return []int32{}
	}
	resultMap := make(map[int32]struct{})
	newList := []int32{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[list[i]]
		if !ok {
			resultMap[list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt32Ptr(list []*int32) []*int32 {
	if list == nil || len(list) == 0 {
		return []*int32{}
	}
	resultMap := make(map[int32]struct{})
	newList := []*int32{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[*list[i]]
		if !ok {
			resultMap[*list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt16(list []int16) []int16 {
	if list == nil || len(list) == 0 {
		return []int16{}
	}
	resultMap := make(map[int16]struct{})
	newList := []int16{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[list[i]]
		if !ok {
			resultMap[list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt16Ptr(list []*int16) []*int16 {
	if list == nil || len(list) == 0 {
		return []*int16{}
	}
	resultMap := make(map[int16]struct{})
	newList := []*int16{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[*list[i]]
		if !ok {
			resultMap[*list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt8(list []int8) []int8 {
	if list == nil || len(list) == 0 {
		return []int8{}
	}
	resultMap := make(map[int8]struct{})
	newList := []int8{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[list[i]]
		if !ok {
			resultMap[list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetInt8Ptr(list []*int8) []*int8 {
	if list == nil || len(list) == 0 {
		return []*int8{}
	}
	resultMap := make(map[int8]struct{})
	newList := []*int8{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[*list[i]]
		if !ok {
			resultMap[*list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetUint(list []uint) []uint {
	if list == nil || len(list) == 0 {
		return []uint{}
	}
	resultMap := make(map[uint]struct{})
	newList := []uint{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[list[i]]
		if !ok {
			resultMap[list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetUintPtr(list []*uint) []*uint {
	if list == nil || len(list) == 0 {
		return []*uint{}
	}
	resultMap := make(map[uint]struct{})
	newList := []*uint{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[*list[i]]
		if !ok {
			resultMap[*list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}
func SetUint64(list []uint64) []uint64 {
	if list == nil || len(list) == 0 {
		return []uint64{}
	}
	resultMap := make(map[uint64]struct{})
	newList := []uint64{}
	for i := 0; i < len(list); i++ {
		_, ok := resultMap[list[i]]
		if !ok {
			resultMap[list[i]] = struct{}{}
			newList = append(newList, list[i])
		}
	}
	return newList
}