e.g. making `replace` taking an Iterable<T> and having a separate method `replaceFrom`. It's a breaking API change, so we likely want to do all related improvements in one shot.