assertChecker = (cond, details) => {
  assert(cond, details);
  return true;
}
Below we have a series of predicate functions and their (curried) assertion
functions. The semantics of the assertion function is just to assert that
the corresponding predicate function would have returned true. But it
reproduces the internal tests so failures can give a better error message.

@type {Checker}