pub(crate) fn closure_trait_ref_and_return_type<'tcx>(
    tcx: TyCtxt<'tcx>,
    fn_trait_def_id: DefId,
    self_ty: Ty<'tcx>,
    sig: PolyFnSig<'tcx>,
    tuple_arguments: TupleArgumentsFlag,
    fn_host_effect: Const<'tcx>,
) -> Binder<'tcx, (TraitRef<'tcx>, Ty<'tcx>)>