private synchronized CompositeMap<IOption, Object> compositeFrom(Stream<Map<IOption, Object>> stream) { List<Map<IOption, Object>> list = stream.collect(Collectors.toList()); CompositeMap<IOption, Object> map = new CompositeMap<>(); map.setMutator(new NoOpMapMutator()); for (ListIterator<Map<IOption, Object>> iter = list.listIterator(list.size()); iter.hasPrevious();) { map.addComposited(iter.previous()); } return map; }