Changes in version 0.2.0 (2026-06-24) First CRAN submission. 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.