Error in fun1(x = 1:3, y = FALSE, z = "fail") : 
  For argument `z`, `"fail"` should be type "logical" (is "character")

fun2 <- function(x, y, z) vetr(x = (matrix(integer(), ncol = 3) || 
    integer(3L)) && .(!any(is.na(.))), y = integer(3L) && .(all(. > 
    0)), z = logical(1L) && .(!is.na(.)))

fun2(matrix(c(1:8, NA), nrow = 3), NULL, NULL)

For argument `x`, `!any(is.na(matrix(c(1:8, NA), nrow = 3)))` is not TRUE (FALSE)

Error in fun2(x = matrix(c(1:8, NA), nrow = 3), y = NULL, z = NULL) : 
  For argument `x`, `!any(is.na(matrix(c(1:8, NA), nrow = 3)))` is not TRUE (FALSE)

For argument `y`, `all(-1:1 > 0)` is not TRUE (FALSE)

Error in fun2(x = matrix(c(1:9), nrow = 3), y = -1:1, z = NULL) : 
  For argument `y`, `all(-1:1 > 0)` is not TRUE (FALSE)

For argument `z`, `!is.na(NA)` is not TRUE (FALSE)

Error in fun2(x = matrix(c(1:9), nrow = 3), y = 1:3, z = NA) : 
  For argument `z`, `!is.na(NA)` is not TRUE (FALSE)

fun2(matrix(c(1:9), nrow = 3), 1:3, TRUE)

fun2a <- function(x) vetr(x = setNames(character(3L), letters[1:3]) || 
    matrix("", 3, 1) || list(character(), x = integer()))

For argument `x` at least one of these should pass:
  - `letters[1:3]` should be "matrix", or type "list" (is "character")
  - `letters[1:3]` should have attribute "names"

Error in fun2a(x = letters[1:3]) : 
  For argument `x` at least one of these should pass:
  - `letters[1:3]` should be "matrix", or type "list" (is "character")
  - `letters[1:3]` should have attribute "names"

fun3 <- function(x, y) vetr(x = logical(1L), y = integer(3L))

Argument `x` produced error during evaluation; see previous error.

Error: boom
Error in fun3(x = stop("boom")) : 
  Argument `x` produced error during evaluation; see previous error.

Argument `y` produced error during evaluation; see previous error.

Error: boomBOOM
Error in fun3(x = TRUE, y = stop("boomBOOM")) : 
  Argument `y` produced error during evaluation; see previous error.

For argument `x`, `1:3` should be type "logical" (is "integer")

Error in fun3(x = 1:3, y = stop("boomBOOM")) : 
  For argument `x`, `1:3` should be type "logical" (is "integer")