func EveryPtrErr(f func(*Employee) (bool, error), list []*Employee) (bool, error) {
	if f == nil || len(list) == 0 {
		return false, nil
	}
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return false, err
		}
		if !r {
			return false, nil
		}
	}
	return true, nil
}
EveryPtrErr returns true if supplied function returns logical true for every item in the list
package employee
import _ "reflect" 
import "sort" 
import "sync"
import "time"
import "github.com/logic-building/functional-go/fp" 
func Map(f func(Employee) Employee, list []Employee) []Employee {
	if f == nil {
		return []Employee{}
	}
	newList := make([]Employee, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapPtr(f func(*Employee) *Employee, list []*Employee) []*Employee {
	if f == nil {
		return []*Employee{}
	}
	newList := make([]*Employee, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapPtrErr(f func(*Employee) (*Employee, error), list []*Employee) ([]*Employee, error) {
	if f == nil {
		return []*Employee{}, nil
	}
	newList := make([]*Employee, 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 MapErr(f func(Employee) (Employee, error), list []Employee) ([]Employee, error) {
	if f == nil {
		return []Employee{}, nil
	}
	newList := make([]Employee, 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 Filter(f func(Employee) bool, list []Employee) []Employee {
	if f == nil {
		return []Employee{}
	}
	var newList []Employee
	for _, v := range list {
		if f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func FilterPtr(f func(*Employee) bool, list []*Employee) []*Employee {
	if f == nil {
		return []*Employee{}
	}
	var newList []*Employee
	for _, v := range list {
		if f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func FilterPtrErr(f func(*Employee) (bool, error), list []*Employee) ([]*Employee, error) {
	if f == nil {
		return []*Employee{}, nil
	}
	var newList []*Employee
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}
func FilterErr(f func(Employee) (bool, error), list []Employee) ([]Employee, error) {
	if f == nil {
		return []Employee{}, nil
	}
	var newList []Employee
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}
func Remove(f func(Employee) bool, list []Employee) []Employee {
	if f == nil {
		return []Employee{}
	}
	var newList []Employee
	for _, v := range list {
		if !f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func RemovePtr(f func(*Employee) bool, list []*Employee) []*Employee {
	if f == nil {
		return []*Employee{}
	}
	var newList []*Employee
	for _, v := range list {
		if !f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func RemovePtrErr(f func(*Employee) (bool, error), list []*Employee) ([]*Employee, error) {
	if f == nil {
		return []*Employee{}, nil
	}
	var newList []*Employee
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if !r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}
func RemoveErr(f func(Employee) (bool, error), list []Employee) ([]Employee, error) {
	if f == nil {
		return []Employee{}, nil
	}
	var newList []Employee
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if !r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}
func Some(f func(Employee) bool, list []Employee) bool {
	if f == nil {
		return false
	}
	for _, v := range list {
		if f(v) {
			return true
		}
	}
	return false
}
func SomePtr(f func(*Employee) bool, list []*Employee) bool {
	if f == nil {
		return false
	}
	for _, v := range list {
		if f(v) {
			return true
		}
	}
	return false
}
func SomePtrErr(f func(*Employee) (bool, error), list []*Employee) (bool, error) {
	if f == nil {
		return false, nil
	}
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return false, err
		}
		if r {
			return true, nil
		}
	}
	return false, nil
}
func SomeErr(f func(Employee) (bool, error), list []Employee) (bool, error) {
	if f == nil {
		return false, nil
	}
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return false, err
		}
		if r {
			return true, nil
		}
	}
	return false, nil
}
func Every(f func(Employee) bool, list []Employee) bool {
	if f == nil || len(list) == 0 {
		return false
	}
	for _, v := range list {
		if !f(v) {
			return false
		}
	}
	return true
}
func EveryPtr(f func(*Employee) bool, list []*Employee) bool {
	if f == nil || len(list) == 0 {
		return false
	}
	for _, v := range list {
		if !f(v) {
			return false
		}
	}
	return true
}