
* `stopifnot` by R Core
* [`vetr`](https://github.com/brodieG/vetr) by Yours Truly
* [`asserthat`](https://github.com/hadley/assertthat) by Hadley Wickham
* [`assertive`](https://www.r-pkg.org/pkg/assertive) by Richie Cotton
* [`checkmate`](https://github.com/mllg/checkmate) by Michel Lang

The following packages also perform related tasks, although we have not used
them and do not review them:

* [`valaddin`](https://github.com/egnha/valaddin) v0.1.0 by Eugene Ha, a
  framework for augmenting existing functions with validation contracts.
  Currently the package is undergoing a major overhaul so we will add it to the
  comparison once the new release (v0.3.0) is out.
* [`ensurer`](https://github.com/smbache/ensurer) v1.1 by Stefan M. Bache, a
  framework for flexibly creating and combining validation contracts.  The
  development version adds an experimental method for creating type safe
  functions, but it is not published to CRAN so we do not test it here.
* [`validate`](https://github.com/data-cleaning/validate) by Mark van
  der Loo and Edwin de Jonge, with a primary focus on validating data in data
  frames and similar data structures.
* [`assertr`](https://github.com/tonyfischetti/assertr) by Tony Fischetti, also
  focused on data validation in data frames and similar structures.
* [`types`](https://github.com/jimhester/types) by Jim Hester, which implements
  but does not enforce type hinting.
* [`argufy`](https://github.com/gaborcsardi/argufy) by Gábor Csárdi, which
  implements parameter validation via roxygen tags (not released to CRAN).
* [`typed`](https://moodymudskipper.github.io/typed/) by Antoine Fabri, which
  enforces types of symbols, function parameters, and return values.
* [`erify`](https://github.com/flujoo/erify/) by Renfei Mao, with a focus on
  readable error messages.
