pub fn make_try_flat_map_fn<I, E, F, OPI>(
    func: F
) -> impl Fn(Result<I, E>) -> Vec<Result<OPI::Item, E>>
where F: Fn(I) -> Result<OPI, E>, OPI: IntoIterator, E: Send,