Modify the signature of Cps<TResult, T>, make T covariance