fn try_or<T, E>(
    a: T,
    b: T,
    f: impl FnMut(T) -> Result<bool, E>
) -> Result<bool, E>