private static <T> List<T> join(List<? extends T> list, T element) { List<T> result = new ArrayList<T>(list.size() + 1); result.addAll(list); result.add(element); return result; }