pub(in solve) fn extract_tupled_inputs_and_output_from_callable<'tcx>(
    tcx: TyCtxt<'tcx>,
    self_ty: Ty<'tcx>,
    goal_kind: ClosureKind
) -> Result<Option<Binder<'tcx, (Ty<'tcx>, Ty<'tcx>)>>, NoSolution>