pub(in solve) fn extract_tupled_inputs_and_output_from_callable<I: Interner>( cx: I, self_ty: I::Ty, goal_kind: ClosureKind, ) -> Result<Option<Binder<I, (I::Ty, I::Ty)>>, NoSolution>