dontEncodeRemotableToSmallcaps = rem =>
  Fail`remotable unexpected: ${rem}`
@typedef {object} EncodeToSmallcapsOptions
@property {(
  remotable: Remotable,
  encodeRecur: (p: Passable) => SmallcapsEncoding
) => SmallcapsEncoding} [encodeRemotableToSmallcaps]
@property {(
  promise: Promise,
  encodeRecur: (p: Passable) => SmallcapsEncoding
) => SmallcapsEncoding} [encodePromiseToSmallcaps]
@property {(
  error: Error,
  encodeRecur: (p: Passable) => SmallcapsEncoding
) => SmallcapsEncoding} [encodeErrorToSmallcaps]