dontDecodeRemotableFromSmallcaps = encoding =>
  Fail`remotable unexpected: ${encoding}`
@typedef {object} DecodeFromSmallcapsOptions
@property {(
  encodedRemotable: SmallcapsEncoding,
  decodeRecur: (e :SmallcapsEncoding) => Passable
) => Remotable} [decodeRemotableFromSmallcaps]
@property {(
  encodedPromise: SmallcapsEncoding,
  decodeRecur: (e :SmallcapsEncoding) => Passable
) => Promise} [decodePromiseFromSmallcaps]
@property {(
  encodedError: SmallcapsEncoding,
  decodeRecur: (e :SmallcapsEncoding) => Passable
) => Error} [decodeErrorFromSmallcaps]