pub type ComputeFrom3<I, T, S1I, S1T, S2I, S2T, S3I, S3T> = for<'a> fn(I, &mut dyn BaseVecIterator<Item = (S1I, Value<'a, S1T>)>, &mut dyn BaseVecIterator<Item = (S2I, Value<'a, S2T>)>, &mut dyn BaseVecIterator<Item = (S3I, Value<'a, S3T>)>) -> Option<T>;