pub fn merge_opt_i5<I1, I2, I3, I4, I5, F, O>( I1: Option<I1>, I2: Option<I2>, I3: Option<I3>, I4: Option<I4>, I5: Option<I5>, func: F, ) -> Option<O>where F: Fn(Option<I1>, Option<I2>, Option<I3>, Option<I4>, Option<I5>) -> Option<O>,