func RemoveEmployerErr(f func(employer.Employer) (bool, error), list []employer.Employer) ([]employer.Employer, error) {
	if f == nil {
		return []employer.Employer{}, nil
	}
	var newList []employer.Employer
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if !r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}
RemoveEmployerErr removes the items from the given list based on supplied function and returns new list

Takes 2 inputs:
1. Function: input type employer.Employer and return types(bool, error)
2. List of type: []employer.Employer

Returns:
New list and error: ([]employer.Employer, error)
Empty list if both of arguments are nil or either one is nil.
package gfp
import _ "reflect" 
import "sync" 
import "github.com/logic-building/functional-go/fp" 
import "github.com/logic-building/functional-go/internal/employee" 
import "github.com/logic-building/functional-go/internal/employer" 
func MapEmployer(f func(employer.Employer) employer.Employer, list []employer.Employer) []employer.Employer {
	if f == nil {
		return []employer.Employer{}
	}
	newList := make([]employer.Employer, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapEmployerPtr(f func(*employer.Employer) *employer.Employer, list []*employer.Employer) []*employer.Employer {
	if f == nil {
		return []*employer.Employer{}
	}
	newList := make([]*employer.Employer, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapEmployerPtrErr(f func(*employer.Employer) (*employer.Employer, error), list []*employer.Employer) ([]*employer.Employer, error) {
	if f == nil {
		return []*employer.Employer{}, nil
	}
	newList := make([]*employer.Employer, 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 MapEmployerErr(f func(employer.Employer) (employer.Employer, error), list []employer.Employer) ([]employer.Employer, error) {
	if f == nil {
		return []employer.Employer{}, nil
	}
	newList := make([]employer.Employer, 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 FilterEmployer(f func(employer.Employer) bool, list []employer.Employer) []employer.Employer {
	if f == nil {
		return []employer.Employer{}
	}
	var newList []employer.Employer
	for _, v := range list {
		if f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func FilterEmployerPtr(f func(*employer.Employer) bool, list []*employer.Employer) []*employer.Employer {
	if f == nil {
		return []*employer.Employer{}
	}
	var newList []*employer.Employer
	for _, v := range list {
		if f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func FilterEmployerPtrErr(f func(*employer.Employer) (bool, error), list []*employer.Employer) ([]*employer.Employer, error) {
	if f == nil {
		return []*employer.Employer{}, nil
	}
	var newList []*employer.Employer
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}
func FilterEmployerErr(f func(employer.Employer) (bool, error), list []employer.Employer) ([]employer.Employer, error) {
	if f == nil {
		return []employer.Employer{}, nil
	}
	var newList []employer.Employer
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}
func RemoveEmployer(f func(employer.Employer) bool, list []employer.Employer) []employer.Employer {
	if f == nil {
		return []employer.Employer{}
	}
	var newList []employer.Employer
	for _, v := range list {
		if !f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func RemoveEmployerPtr(f func(*employer.Employer) bool, list []*employer.Employer) []*employer.Employer {
	if f == nil {
		return []*employer.Employer{}
	}
	var newList []*employer.Employer
	for _, v := range list {
		if !f(v) {
			newList = append(newList, v)
		}
	}
	return newList
}
func RemoveEmployerPtrErr(f func(*employer.Employer) (bool, error), list []*employer.Employer) ([]*employer.Employer, error) {
	if f == nil {
		return []*employer.Employer{}, nil
	}
	var newList []*employer.Employer
	for _, v := range list {
		r, err := f(v)
		if err != nil {
			return nil, err
		}
		if !r {
			newList = append(newList, v)
		}
	}
	return newList, nil
}