SE-0396: Conform Never to Codable

The Either example is not convincing. But I don't need to be convinced. This will be a great addition. Not because Codable is special, but because it's ubiquitous.

You've surely got secret stuff in the works to support that is more important than what we currently know to be the greatest advantage of the addition—bringing the ability to write this kind of code:

struct Type<Value: Codable>: Codable {
  let value: Value
}

extension Type<Never> {
  enum FakeNonGenericNamespace {
    static func member() { }
  }
}

Type.FakeNonGenericNamespace.member()

As for the error, nothing that exists is appropriate. Make a new one.

extension Never: Decodable {
  public struct DecodingError: Error {
    let context: Swift.DecodingError.Context
  }

  public init(from decoder: Decoder) throws {
    throw DecodingError(
      context: .init(
        codingPath: decoder.codingPath,
        debugDescription: "To die will be an awfully big adventure. 🧚"
      )
    )
  }
}