Because Version.init?(_ characters:) is really failable this code is very dangerous:
extension Version: StringLiteralConvertible {
public init(stringLiteral value: String) {
self.init(value.characters)!
}
Is the convenience worth it?