# Aliases
list_tidy <- function(...) list2(...)
names_chr <- function(x) names2(x)
`%named%` <- function(x, nm) `names<-`(x, nm)
`%??%` <- function(x, default) {
  if (length(x) == 0L) default else x
}
new_fn <- function(..args, ..body, ..env = NULL, ...) {
  if (!is.pairlist(..args))
    ..args <- as.pairlist(..args)
  if (missing(...))
    return(eval(call("function", ..args, ..body), ..env))
  eval(call("function", ..args, ..body), list_tidy(...), ..env)
}
fml_args <- function(f) {
  formals(closure(f))
}
eponymous <- function(nms) {
  lapply(nms, as.name) %named% nms
}
has_dots <- function(x) {
  match("...", x, nomatch = 0L) > 0L
}
`%notin%` <- function(xs, set) {
  match(xs, set, nomatch = 0L) == 0L
}
`%are%` <- function(xs, set) {
  all(match(xs, set, nomatch = 0L) > 0L)
}
is_onesided <- function(fml) {
  length(fml) == 2L
}
`%because%` <- function(assertion, reason) {
  if (!assertion) stop(reason, call. = FALSE)
  invisible(TRUE)
}
`%unless%` <- function(expr, failure) {
  tryCatch(expr, error = function(e) halt(failure, e$message))
}
halt <- function(msg, ...) {
  stop(sprintf(msg, ...), call. = FALSE)
}
`%subclass%` <- function(class, superclass) {
  wh_class <- which(superclass == class)
  if (is_empty(wh_class))
    return(c(class, superclass))
  if (isTRUE(wh_class == 1L))
    return(superclass)
  c(class, superclass[-wh_class])
}
# nocov start (build-time only)
getter <- function(nm) {
  force(nm)
  function(x) {
    get0(nm, envir = environment(x) %||% emptyenv())
  }
}
assign_getter <- local({
  assign_getter_ <- function(nm, env = parent.frame()) {
    property <- mangle(nm)
    getter <- function(x) {
      attr(x, property, exact = TRUE)
    }
    assign(nm, getter, envir = env)
  }
  function(..., env = parent.frame()) {
    for (nm in c(...))
      assign_getter_(nm, env)
  }
})
assign_setter <- local({
  assign_setter_ <- function(nm, env = parent.frame()) {
    property <- mangle(nm)
    setter <- function(x, value) {
      attr(x, property) <- value
      invisible(x)
    }
    assign(paste0(nm, "<-"), setter, envir = env)
  }
  function(..., env = parent.frame()) {
    for (nm in c(...))
      assign_setter_(nm, env)
  }
})
mangle <- function(nm) {
  paste0(".__GESTALT_", toupper(nm), "__.")
}
check_head <- function(nm) {
  sym <- as.name(nm)
  function(x) identical(x[[1L]], sym)
}
# nocov end
`%encloses%` <- function(parent, bindings) {
  list2env(bindings, parent = parent)
}
envir <- function(f) {
  environment(f) %||% baseenv()
}
mut_nodes <- function(xs, f, ...) {
  rapply(xs, f, how = "replace", ...)
}
pick <- function(x, i) {
  if (is.atomic(i))
    return(.subset2(x, i))
  for (idx in i)
    x <- x[[idx]]
  x
}
`pick<-` <- local({
  lhs <- quote(x)
  function(x, i, value) {
    if (is.atomic(i)) {
      x[[i]] <- value
      return(x)
    }
    for (idx in i)
      lhs <- call("[[", lhs, idx)
    eval(call("<-", lhs, value))
    x
  }
})
not_fn_coercible <- function(x) {
  cls <- paste(deparse(class(x)), collapse = "")
  halt("Cannot interpret object of class %s as a function", cls)
}
#' Raw quotation of an expression
#'
#' `quo_get_expr_()` is an extension of [rlang::quo_get_expr()] that comprehends
#' literal unquoting operators: `QUQ()`, `QUQS()` are substituted as
#' `` `!!`() ``, and `` `!!!`() ``, resp.
#'
#' @noRd
quo_get_expr_ <- local({
  quq <- list(
    QUQ  = as.name("!!"),
    QUQS = as.name("!!!")
  )
  function(x) {
    do.call("substitute", list(quo_get_expr(x), quq))
  }
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.