func (wrapper *ChainWrapper) FindLastIndex(cb Predicate) *ChainWrapper {
	wrapper.Res = FindLastIndex(wrapper.Mid, cb)
	wrapper.Mid = nil
	return wrapper
}
FindLastIndex is a chaining wrapper for #FindLastIndex
package ugo
type ChainWrapper struct {
	Mid Seq     
	Res Object  
}
func (wrapper *ChainWrapper) Each(cb Action) *ChainWrapper {
	Each(wrapper.Mid, cb)
	return wrapper
}
func (wrapper *ChainWrapper) ForEach(cb Action) *ChainWrapper {
	return wrapper.Each(cb)
}
func (wrapper *ChainWrapper) Map(cb Callback) *ChainWrapper {
	wrapper.Mid = Map(wrapper.Mid, cb)
	wrapper.Res = wrapper.Mid
	return wrapper
}
func (wrapper *ChainWrapper) Collect(cb Callback) *ChainWrapper {
	return wrapper.Map(cb)
}
func (wrapper *ChainWrapper) Filter(cb Predicate) *ChainWrapper {
	wrapper.Mid = Filter(wrapper.Mid, cb)
	wrapper.Res = wrapper.Mid
	return wrapper
}
func (wrapper *ChainWrapper) Select(cb Predicate) *ChainWrapper {
	return wrapper.Filter(cb)
}
func (wrapper *ChainWrapper) Reject(cb Predicate) *ChainWrapper {
	wrapper.Mid = Reject(wrapper.Mid, cb)
	wrapper.Res = wrapper.Mid
	return wrapper
}
func (wrapper *ChainWrapper) Reduce(cb Collector, initial Object) *ChainWrapper {
	wrapper.Res = Reduce(wrapper.Mid, cb, initial)
	wrapper.Mid = nil
	return wrapper
}
func (wrapper *ChainWrapper) Inject(cb Collector, initial Object) *ChainWrapper {
	return wrapper.Reduce(cb, initial)
}
func (wrapper *ChainWrapper) FoldL(cb Collector, initial Object) *ChainWrapper {
	return wrapper.Reduce(cb, initial)
}
func (wrapper *ChainWrapper) ReduceRight(cb Collector, initial Object) *ChainWrapper {
	wrapper.Res = ReduceRight(wrapper.Mid, cb, initial)
	wrapper.Mid = nil
	return wrapper
}
func (wrapper *ChainWrapper) FoldR(cb Collector, initial Object) *ChainWrapper {
	return wrapper.ReduceRight(cb, initial)
}
func (wrapper *ChainWrapper) Min(cb Comparator) *ChainWrapper {
	wrapper.Res = Min(wrapper.Mid, cb)
	wrapper.Mid = nil
	return wrapper
}
func (wrapper *ChainWrapper) Max(cb Comparator) *ChainWrapper {
	wrapper.Res = Max(wrapper.Mid, cb)
	wrapper.Mid = nil
	return wrapper
}
func (wrapper *ChainWrapper) Find(cb Predicate) *ChainWrapper {
	wrapper.Res = Find(wrapper.Mid, cb)
	wrapper.Mid = nil
	return wrapper
}
func (wrapper *ChainWrapper) Detect(cb Predicate) *ChainWrapper {
	return wrapper.Find(cb)
}
func (wrapper *ChainWrapper) FindLast(cb Predicate) *ChainWrapper {
	wrapper.Res = FindLast(wrapper.Mid, cb)
	wrapper.Mid = nil
	return wrapper
}
func (wrapper *ChainWrapper) FindIndex(cb Predicate) *ChainWrapper {
	wrapper.Res = FindIndex(wrapper.Mid, cb)
	wrapper.Mid = nil
	return wrapper
}