pub trait IteratorExt: Iterator {
// Provided method
fn merge_by<I, F>(self, other: I, is_first: F) -> MergeBy<Self, I, F>
where Self: Sized,
I: Iterator<Item = Self::Item>,
F: FnMut(&Self::Item, &Self::Item) -> bool { ... }
}