func (l List) With(keyvals ...interface{}) List {
	keyvals = flattenFix(keyvals)
	list := l.clone(len(l) + len(keyvals))
	list = append(list, keyvals...)
	return list
}
func (l List) With(keyvals ...interface{}) List {
	keyvals = flattenFix(keyvals)
	list := l.clone(len(l) + len(keyvals))
	list = append(list, keyvals...)
	return list
}
func ( l List ) With ( keyvals ... interface { } ) List { keyvals = flattenFix ( keyvals ) list := l . clone ( len ( l ) + len ( keyvals ) ) list = append ( list , keyvals ... ) return list }
// With returns a new list with keyvals appended. The original
// list (l) is not modified.
With returns a new list with keyvals appended . The original list ( l ) is not modified .