fn next_bound<'db, B>( env: &Env<'db>, infer: InferVarIndex, bound_op: impl Fn(&InferenceVarData<'db>, Direction) -> Option<(B, ArcOrElse<'db>)>, storage: &mut [Option<B>; 2], ) -> impl Future<Output = Option<(Direction, B)>>where B: PartialEq + Serialize + 'db + Clone,