unredactedDetails = (template, ...args) => {
  args = arrayMap(args, arg =>
    weakmapHas(declassifiers, arg) ? arg : quote(arg),
  );
  return redactedDetails(template, ...args);
}
`unredactedDetails` is like `details` except that it does not redact
anything. It acts like `details` would act if all substitution values
were wrapped with the `quote` function above (the function normally
spelled `q`). If the `{errorTaming: 'unsafe'}`
or `{errorTaming: 'unsafe-debug'}` option is given to
`lockdown`, then the lockdown-shim arranges for the global `assert` to be
one whose `details` property is `unredactedDetails`.
This setting optimizes the debugging and testing experience at the price
of safety. `unredactedDetails` also sacrifices the speed of `details`,
which is usually fine in debugging and testing.

@type {AssertionUtilities['details']}