Changes in version 0.2.0.9000 - hoif_ate() and compute_hoif_estimators() now fail early with a clear, correctly-namespaced message when the Python backend is not configured: they point to ustats::setup_ustats() / ustats::check_ustats_setup() (which are not on the search path after library(HOIF) alone) and to the pure_R_code = TRUE fallback. Previously the error came from ustats::ustat() and suggested an unqualified setup_ustats(), which is not callable without attaching 'ustats'. - DESCRIPTION now also cites Robins et al. (2017) doi:10.1214/16-AOS1515 ("Minimax estimation of a functional on a structured high-dimensional model"), matching the four foundational HOIF references listed in the README and vignette. Changes in version 0.2.0 (2026-06-24) First CRAN release (accepted 2026-06-19). Adaptation to ustats (>= 0.1.5) - The Python dependencies (u-stats, numpy, torch) of the 'ustats' backend are now provisioned automatically on first use (via reticulate >= 1.41 and reticulate::py_require() declared by 'ustats'), so most users need no manual setup. The installation documentation (README, vignette) was rewritten accordingly, covering the three setup paths: automatic, ustats::setup_ustats() (CPU-only PyTorch by default, gpu = TRUE for CUDA), and bring-your-own-environment. - hoif_ate() and compute_hoif_estimators() gain a dtype argument ("float32"/"float64", default NULL = automatic) that is passed through to ustats::ustat() to control the numeric precision of the Python backend. - The Remotes: field and the package-level Config/reticulate block were removed: 'ustats' is now obtained from CRAN and declares its own Python requirements. Bug fixes - transform_covariates() no longer fails with "object 'k' not found" for method = "splines" and method = "fourier" (the basis dimension argument was renamed to basis_dim without updating the function body). It now also validates basis_dim and gives an informative error when it is missing or too small. - The Moore-Penrose fallback in compute_gram_inverse() now checks that 'MASS' is installed (it is a suggested package) and gives an informative error if not. - print.hoif_ate() returns its argument invisibly, as is customary for print methods. Documentation - All exported functions now have executable examples; examples and tests that need Python are guarded so that the package can be checked without a Python runtime (the pure R backend is exercised instead). - Added a tests/testthat.R runner (previously the test suite was not run by R CMD check) plus new pure R regression tests. - The vignette was moved to the standard vignettes/ directory, its code chunks are no longer evaluated at build time (the Python backend is not available on build machines), and the references were corrected. - Startup message points users to ustats::check_ustats_setup() and the pure_R_code = TRUE fallback.