Iterable<T> buildSeparator(Supplier<T> separator) { return map((e) => [separator(), e]).expand((element) => element).skip(1); }