//! Function-like type that checks an invariant and optionally provides an error message.
use fmt;
/// Function-like type that checks an invariant and optionally provides an error message.
///
/// Takes an arity parameter useful e.g. for comparing pairs, since
/// you want to take references for each element of the pair,
/// but the pair *itself* has to be a temporary value.